【发布时间】:2025-11-24 22:45:01
【问题描述】:
我正在将一个数组从 js 调用(ajax)传递到一个 php 页面并抛出一个错误。错误所在的代码行是:
foreach ($array as list($a, $b, $c, $d, $e, $f, $g, $h)) {
这是我第一次尝试 pdo。
谁能看出代码有什么问题?
js & ajax 调用:
var outerarray=[];
var innerarray = [];
innerarray[0]="1";
innerarray[1]="2";
innerarray[2]="3";
innerarray[3]="4";
innerarray[4]="5";
innerarray[5]="6";
innerarray[6]="7";
innerarray[7]="8";
innerarray[8]="9";
innerarray[9]="10";
innerarray[10]="11";
innerarray[11]="1";
innerarray[12]="13";
outerarray[0]=innerarray;
$.ajax({
type: "POST",
url: "ajax/upadateElements.php",
data: {outerarray:outerarray},
success:function(data){
alert("data:"+data);
},
error: function(data){
alert("failure");
}
});
updateElements.php 代码
$db = new PDO('mysql:host=localhost;dbname=dbname;charset=utf8', username, password, array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$array[]=$_POST['outerarray'];
foreach ($array as list($a, $b, $c, $d, $e, $f, $g, $h)) {
$stmt = $db->prepare("SELECT * FROM table WHERE a=:a AND b=:b");
$stmt->execute(array(':a' => $a, ':b' => $b));
$row_count = $stmt->rowCount();
if($row_count==0){
$stmt = $db->prepare("INSERT INTO table(a, b, c, d, e, f, g, h) VALUES(:field1,:field2,:field3,:field4,:field5,:field6,:field7,:field8)"); $stmt->execute(array(':field1' => $a, ':field2' => $b, ':field3' => $c, ':field4' => $d, ':field5' => $e, ':field6' => $f, ':field7' => $g, ':field8' => $h));
$affected_rows = $stmt->rowCount();
}
if($affected_rows !=0){
echo "success";
}else{
echo "fail";
}
【问题讨论】:
-
错误信息是什么?
-
代码有效吗?如果是这样,谁在乎编辑说什么?
-
我无法运行代码,直到我确定它没问题,因为它会搞砸我的数据库,dreamweaver 已用红色突出显示代码行
-
应该是
innerarray[11]="1";还是innerarray[11]="12";? -
Dreamweaver 并不总是正确的。
标签: php foreach dreamweaver