我正在创建一个PHP应用程序,它将编译计算机列表。
该列表将动态生成。因此,我正试图将数据插入MYSQL数据库。除非发生错误,否则下面的代码并非旨在对用户做出响应。
我遇到了错误:
警告:PDOStatement :: execute():SQLSTATE [HY093]:无效的参数 number:绑定变量的数量与中的令牌数量不匹配 第39行的C:\ xampp \ htdocs \ netman \ connect.php
我的代码是:
$stmt = $db->prepare("UPDATE bots SET compName=':compName', username=':username',
ramTotal=':ram', vendor=':vendor', IP=':IP', last=NOW() WHERE machineID = :machID");
$stmt->execute([
"machID" => $_GET['machineID'],
"compName" => $_GET['compName'],
"username" => $_GET['user'],
"vendor" => $_GET['vendor'],
"ram" => $_GET['memory'],
"IP" => $_SERVER['REMOTE_ADDR']
]);
答案 0 :(得分:0)
我犯了一个愚蠢的错误:
您不要将绑定变量值放在引号中compName =:compName – @RaymondNijland
新代码:
$stmt = $db->prepare("UPDATE bots SET compName=:compName, username=:username,
ramTotal=:ram, vendor=:vendor, IP=:IP, last=NOW() WHERE machineID = :machID");
$stmt->execute([
"machID" => $_GET['machineID'],
"compName" => $_GET['compName'],
"username" => $_GET['user'],
"vendor" => $_GET['vendor'],
"ram" => $_GET['memory'],
"IP" => $_SERVER['REMOTE_ADDR']
]);
谢谢