PHP PDO无效的参数编号。虽然设置了所有参数

时间:2018-06-23 11:53:52

标签: php mysql pdo xampp

我正在创建一个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']
            ]);

1 个答案:

答案 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']
            ]);

谢谢