我正在尝试将数组中的2个值插入数据库中。连接没有问题,$fullArr
和$thumbArr
插入的字段是longtexts,当我尝试插入1个数组值时,它工作正常($fullArr
或$thumbArr
)。只要两个数组在查询中使用它就会停止工作。
数组中的值是data-urls。
private function submitPhoto() {
global $database;
$projectid = $_POST['projectid'];
$fullArr = $_POST['fullArr'];
$thumbArr = $_POST['thumbArr'];
$count = 0;
foreach($thumbArr as $key) {
// Insert Thumb
$database->query("INSERT INTO `photo` (photoid, projectid, dataurlfull, dataurlthumb) VALUES('', '" . $projectid . "', '" . $fullArr[$count] . "', '" . $key . "')");
$count++;
}
}
答案 0 :(得分:0)
尝试更改查询:
$database->query("INSERT INTO `photos` (photoid, projectid, dataurlfull, dataurlthumb) VALUES('', '$projectid', '$fullArr[$count]', '$key')");
答案 1 :(得分:0)
您是否有可能不在foreach()
循环内执行查询,因此最后一个将覆盖'你之前有过的吗?此外,$count
不是必需的,因为您可以使用$key
。尝试像 -
foreach($thumbArr as $key=>$value) {
// Insert Thumb
$database->query("INSERT INTO `photo` (photoid, projectid, dataurlfull, dataurlthumb) VALUES('', '" . $projectid . "', '" . $fullArr[$key] . "', '" . $thumbArr[$key] . "')");
$database->execute();
}
请注意,在使用$_POST
数据而不进行清理时,您可以使用SQL注入。如果您使用的是mysqli_
或PDO
,请使用参数化语句
foreach($thumbArr as $key=>$value) {
// Insert Thumb
$database->query("INSERT INTO `photo` (photoid, projectid, dataurlfull, dataurlthumb) VALUES('', ?, ?, ?)");
$database->bindParam(1,$projectid);
$database->bindParam(2,$fullArr[$key]);
$database->bindParam(3,$thumbArr[$key]);
$database->execute();
}