将2个不同的数组值插入数据库不起作用

时间:2013-06-06 23:09:04

标签: php mysql sql

我正在尝试将数组中的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++;
}
}

2 个答案:

答案 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();
}