SQL绑定变量错误

时间:2015-05-11 13:04:51

标签: mysql bound-variable

我的代码中出现错误。我确定这意味着我的代码的column =:variable部分出了问题,但是我已经过去了,看不出有什么问题。

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens' in F:\...

这是代码(长第一行):

        $stmt = $dbh->prepare("UPDATE item_list SET quantity=:quantity, new_price=:newprice, image_link=:image_link, market_hash_name=:markethashname, last_update='1000-01-01 00:00:00', is_tradable='TEST', old_price=:oldprice WHERE item_name=:itemname AND (image_link IS NULL OR quantity IS NULL OR new_price IS NULL OR market_hash_name IS NULL OR last_update IS NULL OR is_tradable IS NULL OR old_price IS NULL)");
        $sql->bindParam(':quantity', $json2->quantity);
        $sql->bindParam(':newprice', $json2->lowest_price);
        $sql->bindParam('image_link', $image_link_full);
        $sql->bindParam(':markethashname', urlencode($mydata->market_hash_name));
        $sql->bindParam(':oldprice', $json2->lowest_price);
        $stmt->bindValue(':itemname', $mydata->market_name);
        $stmt->execute();

编辑:image_link必须是:image_link,仍然得到相同的错误

编辑2:有很多错误,使用两个名称$ sql和$ stmt,使用bindValue而不是bindParam

1 个答案:

答案 0 :(得分:1)

你在bindParam语句中的'image_link'之前缺少冒号':'。

相关问题