首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用bindValue调试更新查询

使用bindValue调试更新查询
EN

Stack Overflow用户
提问于 2015-03-18 04:24:25
回答 1查看 1K关注 0票数 0

我使用的是PDO,我找不到哪里出了问题,即使PDO的setAttribute设置为,我也无法得到错误。

代码语言:javascript
复制
    $fields = $data['fields'];
    $cartID = $data['cartID'];

    $sql = "UPDATE ShoppingCart 
            SET shipToSameLocation_shippingLocationID = :shippingLocationID, shipToSameLocation_shippingMethod = :shippingMethod, shipToSameLocation = 1
            WHERE cartID = :cartID";
    $query = $conn->prepare($sql);
    $query->bindValue(':shippingLocationID', $fields['shipToSameLocation_shippingLocationID'], PDO::PARAM_INT);
    $query->bindValue(':shippingMethod', $fields['shipToSameLocation_shippingMethod'], PDO::PARAM_STR);
    $query->bindValue(':cartID', $cartID, PDO::PARAM_INT);
    $query->execute();

里面有什么与PDO有关的问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-18 04:35:45

因为你是明确地说这个值将是一个int,而不是强迫post值进入和int;

代码语言:javascript
复制
$fields = $data['fields'];
$cartID = (int) $data['cartID'];

$sql = "UPDATE ShoppingCart 
        SET shipToSameLocation_shippingLocationID = :shippingLocationID, shipToSameLocation_shippingMethod = :shippingMethod, shipToSameLocation = 1
        WHERE cartID = :cartID";
$query = $conn->prepare($sql);
$query->bindValue(':shippingLocationID', $fields['shipToSameLocation_shippingLocationID'], PDO::PARAM_INT);
$query->bindValue(':shippingMethod', $fields['shipToSameLocation_shippingMethod'], PDO::PARAM_STR);
$query->bindValue(':cartID', $cartID, PDO::PARAM_INT);
$query->execute();

您要绑定的其他值也是如此,因此将它们转换为正确的类型,或者更好的是不要使用绑定值。就我个人而言,我从未费心去绑定参数或值,我只是将一个关联数组传递到PDO中。

代码语言:javascript
复制
$locId = (int) $fields['shipToSameLocation_shippingLocationID'];
$method =  $fields['shipToSameLocation_shippingMethod'];
$cartId = (int) $data['cartID'];
$params = array(
    ':shippingLocationID' => $locId ,
    ':shippingMethod' => $method,
    ':cartID' => $cartId
);
$query->execute($params);

每次都很有魅力。在我工作的大多数地方,其他人最终都采用了这种方法,因为编码和使用的麻烦要小得多,但这取决于您。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29114109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档