вставлять данные в MYSQL с помощью массива PHP

Привет, я пытаюсь вставить данные в mysql, используя массив, может кто-то посмотреть мой код, я не могу заставить его работать.

это мой post.php

/* POST.PHP */ $post_id = somefunction(); $title = $_POST['title']; $body = $_POST['body']; $myarray = array('','$title','$body','$rowId'); insertToDB($myarray); 

и это внутри моей функции.php

 function insertToDB($myArray) { $db = dbConnect(); $query = "INSERT INTO `posts`(`id`, `title`, `body`, `post_id`) VALUES "; $valuesArr = $array(); foreach($myarray as $row) { $id = (int)$row[0]; // as my primary, auto increment $title = mysql_real_escape_string($row[1]); $body = mysql_real_escape_string($row[2]); $post_id = (int)$row[3]; $valuesArr[] = "(`id`, `title`, `body`, `post_id`)"; } $sql .=implode(',', $valuesArr); $db->query($sql); } 

обратите внимание, что my $id = (int)$row[0]; является основным и автоматическим приращением.

Построить массив с ключом и значением

 $myarray = array("id"=>'',"title"=>$title,"body"=>$body,"pid"=>$rowId); 

и используйте PDO вместо функций mysql_ * (обесценены).

 $sql=$dbh->prepare("INSERT INTO `posts`(`id`, `title`, `body`, `post_id`) VALUES (:id,:title,:body,:pid)"); foreach($myarray as $row=>$value){ $sql->bindValue(":".$row,$value); } $sql->execute(); 

Подробнее о PDO : http://www.php.net/manual/en/book.pdo.php

в

$ myarray = array ('', '$ title', '$ body', '$ rowId' );

кода, вы не можете использовать одинарные кавычки для чтения значений переменных в строке. вы должны использовать двойные quatations для этого, потому что, если вы используете одинарную котировку, она не читает значение переменной, а php думает о ее самом значении,

пытаться

$ myarray = array ("", "$ title", "$ body", "$ rowId" );

это может помочь вам …

Дело в том:

  • Возможно, ваш код имеет какой-то странный отступ, но первое определение insertToDB не выглядит должным образом закрытым (возможно, это в конце предоставленного вами раздела кода) и не имеет return . Если он правильно закрыт, ему по-прежнему не хватает return (это может помочь вам диагностировать происходящее, иметь условный возврат для успеха и ошибки.
  • Вы определяете $query но не используете его позже. Если вы не присоедините к этой строке результат преобразования вашего массива в другую строку (вещь, которую я тоже не вижу), я не думаю, что вы собираетесь INSERT что-нибудь в вашу базу данных.
  • Вам нужно пройти через $ valuesArr и построить строку из вашего массива.

Может быть, я что-то упустил …