2014-10-11 63 views
-2

我想在數據庫中插入一個數組。該陣列可以隨時更改。我想要數據庫中的不同行。在數據庫中插入一個數組

我的代碼:

$var = file_get_contents("test2.txt"); 
    $test = preg_replace('/\\\\/', '', $var); 
    $poep = explode(" ", $test); 

呀,沒有數據庫連接,因爲我想知道如何「分裂」的陣列,將其插入到數據庫中。

我已經試過這樣:

foreach($poep as $row) { 
    $row = $mysqli->real_escape_string($row); 
    if($mysqli->query("insert into data('array') VALUES ($row)") == false){ 
     echo 'Doesnt works!'; 
    } 

它返回「犯規工程」,所以我覺得這是有問題的查詢?

+0

你想要數據庫中的不同行或一行嗎? – 2014-10-11 08:12:53

+0

我想要數據庫中的不同行。 – NadirDev 2014-10-11 08:14:36

+0

你可以var_dump $ poep並顯示來自test2.txt的一些示例數據嗎?它看起來像我的喜歡你的代碼應該做的伎倆,假設文件的內容是空間分隔 – 2014-10-11 08:18:09

回答

0

@NadirDev嗨。假設您正在使用Core PHP編程。在按空格分解字符串後,運行foreach循環,然後插入單獨的行。看看這個粗略的代碼得到的想法:

foreach($poep as $row) { 
    // $row now contains one word. Add that in database. 
    $row = mysql_real_escape_string($row); 
    $query = mysql_query("insert into tableName('fieldName') VALUES ($row)"); 
} 
+1

建議那些古老的,不推薦使用的'mysql_ *'函數? – GolezTrol 2014-10-11 08:23:47

+0

始終使用PDO @NadirDev和/或切換到更好的數據安全框架。 – 2014-10-11 08:24:54

+0

不起作用..它不會在我的數據庫中添加任何東西。 – NadirDev 2014-10-11 08:27:10

0

這裏是我寫的一些代碼。它處理一個CSV文件並將單獨的行存儲到數據庫表(不同之處在於您有一個TXT文件)。它以250行的批量執行mysql插入。希望它能幫助你!

// read all input rows into an array 
echo "Processing input..<br /><br />"; 
$row = 0; 
$input = array(); 
if (($handle = fopen($file['tmp_name'], "r")) !== FALSE) { 
    while (($data = fgetcsv($handle, 0, ",")) !== FALSE) { 
     $num = count($data); 
     for ($c=0; $c < $num; $c++) { 
      $input[$row][] = addslashes($data[$c]); 
     } 

     $row++; 
    } 
    fclose($handle); 
} 

$count = 0; 
$q = "INSERT INTO `inputs` (`keyword`, `percent`, `link`, `added_on`) VALUES "; 

foreach ($input as $inp) { 
    $q .= "('" . addslashes($inp[0]) . "', '" . addslashes($inp[1]) . "', '" . addslashes($inp[2]) . "', '" . date('Y-m-d H:i:s') . "'), "; 
    $count++; 

    if ($count >= 250) { 
     $q = substr($q, 0, -2); 
     $q = mysqli_query($con, $q); 

     $q = "INSERT INTO `inputs` (`keyword`, `percent`, `link`, `added_on`) VALUES "; 
     $count = 0; 
    } 
} 

if ($count > 0) { 
    $q = substr($q, 0, -2); 
    $q = mysqli_query($con, $q); 
} 

echo "Successfully added " . count($input) . " rows to the input list.";