MySQL PHP PDO中的更新不起作用


update in mysql php pdo not working

我正在尝试使用MySQL PHP PDO中的更新语句更新我的数据库。但是,它返回错误:

SQLSTATE[HY093]:参数编号无效:绑定变量数与标记数不匹配

有人可以告诉我哪里出错了吗?

我的代码是:

$sqlupd = "UPDATE 'vendorprof'
    SET 'vd_loc_add1' = :Add1,
    'vd_loc_add2' = :Add2,
    'vd_loc_city' = :City,
    'vd_loc_state' = :State,
    'vd_cont_per' = :ContPerson,
    'vd_cont_mob' = :Mobile,
    WHERE 'vd_user_id' = :userid2";
$profileupd = $conn->prepare($sqlupd);
$profileupd->bindParam(":Add1",$Add1);
$profileupd->bindParam(":Add2",$Add2);
$profileupd->bindParam(":City",$City);
$profileupd->bindParam(":State",$State);
$profileupd->bindParam(":ContPerson",$ContPerson);
$profileupd->bindParam(":Mobile",$Mobile);
$profileupd->execute();
echo $profileupd->rowCount()."records updated Successfully";

好吧,显然您声明了 7 个参数标记,但仅绑定了 6 个。您缺少 1 个参数标记。

:Add1 // is bound as $Add1
:Add2 // is bound as $Add2
:City // is bound as $City
:State // is bound as $State
:ContPerson // is bound as $ContPerson
:Mobile // is bound as $Mobile
:userid2 // is bound ... not

此外,您的查询是错误的。不要用引号将列名括起来。另外,您确实在WHERE之前放了一个逗号...它必须是:

$sqlupd = "UPDATE vendorprof
    SET vd_loc_add1 = :Add1,
    vd_loc_add2 = :Add2,
    vd_loc_city = :City,
    vd_loc_state = :State,
    vd_cont_per = :ContPerson,
    vd_cont_mob = :Mobile
    WHERE vd_user_id = :userid2";