PHP AJAX 报Uncaught PDOException:SQLSTATE[HY093]错误,求代码问题定位
错误原因
你的HY093参数不匹配错误来自编辑操作的UPDATE语句两处问题:
- UPDATE的SET子句末尾多了冗余逗号:
cccEmployee = :ccc_employee,最后一个更新字段后面不能加逗号,会导致SQL解析异常,占位符计数错位 - 绑定参数的键名不匹配:execute传入数组里的
id没有加冒号,和SQL语句里的:id占位符无法对应
修正后的编辑逻辑代码
if( $_POST["traffic_operation"] == "Edit" ) { $traffic_doc = ''; if( $_FILES["traffic_doc"]["name"] != '') { $traffic_doc = upload_image(); } else { $traffic_doc = $_POST['hidden_user_image']; } // 修正:去掉cccEmployee后面的多余逗号 $statement = $connection->prepare('UPDATE traffic_violations SET plateNumber = :plate_number, carModel = :car_model, carColor = :car_color, violationType = :violation_type, ownerGender = :owner_gender, violationDateTime = :violation_date, violationLocation = :violation_location, workingShift = :working_shift, violationAction = :violation_action, violationStatement = :traffic_doc, cccEmployee = :ccc_employee WHERE id = :id' ); $statement->execute( array( // 修正:id前面加冒号,和占位符对应 ':id' => $_POST["violation_id"], ':plate_number' => $_POST["plate_number"], ':car_model' => $_POST["car_model"], ':car_color' => $_POST["car_color"], ':violation_type' => $_POST["violation_type"], ':owner_gender' => $_POST['owner_gender'], ':violation_date' => $_POST['violation_date'], ':violation_location' => $_POST['violation_location'], ':working_shift' => $_POST['working_shift'], ':violation_action' => $_POST['violation_action'], ':traffic_doc' => $traffic_doc, ':ccc_employee' => $_POST['ccc_employee'] ) ); echo 'Traffic Violation Updated'; }
内容的提问来源于stack exchange,提问作者Abdulrahman Mushref
相关产品推荐
相关产品推荐

