2014-10-11 7 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!'; 
    } 

возвращает «Doesnt работает», так что я думаю, что есть проблема с запросом?

+0

Вы хотите разные строки в дате или одной строке? –

+0

Мне нужны разные строки в базе данных. – NadirDev

+0

Можете ли вы var_dump $ poep и показать некоторые данные образца из test2.txt? Мне кажется, что ваш код должен делать трюк, предполагая, что содержимое файла разделено пробелом. –

ответ

0

@NadirDev Hi. Предполагая, что вы используете программирование ядра 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

+0

Всегда используйте PDO теперь @NadirDev и/или переключитесь на лучшую инфраструктуру для обеспечения безопасности данных. –

+0

Не работает. Он ничего не добавляет в моей базе данных. – NadirDev

0

вот код, который я написал. Он обрабатывает CSV-файл и сохраняет отдельные строки в таблице db (разница в том, что у вас есть TXT-файл). Он вставляет mysql в партиях по 250 строк. Надеюсь, это поможет вам!

// 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."; 
Смежные вопросы