嗨我试图使用数组在mysql中插入数据,有人可以看看我的代码,我似乎无法使它工作。
这是我的post.php
/* POST.PHP */
$post_id = somefunction();
$title = $_POST['title'];
$body = $_POST['body'];
$myarray = array('','$title','$body','$rowId');
insertToDB($myarray);
这是我的function.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);
}
请注意我的$id = (int)$row[0];
是主要和自动增量。
答案 0 :(得分:2)
使用键和值
构造数组$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
答案 1 :(得分:0)
in
$ myarray = array('','$ title','$ body','$ rowId');
代码,你不能使用单引号将变量值读入字符串。你必须使用双量化,因为如果你使用单引号,它不会读取变量值,而php会认为它是值本身,
试
$ myarray = array(“”,“$ title”,“$ body”,“$ rowId”);
这可能对你有帮助......
答案 2 :(得分:0)
事情是:
insertToDB
似乎都没有正确关闭(可能是在你提供的代码部分的末尾),也没有return
。如果它已正确关闭,它仍然缺少return
(它可能有助于您诊断正在发生的事情是否有条件返回成功和错误案例。$query
但稍后不再使用它。除非你追加到那个字符串,把你的数组转换成另一个字符串的结果(我也看不到的东西),我不认为你会向你的数据库发送INSERT
任何东西。也许我错过了什么......