gpt4 book ai didi

PHP PDO 使用 bindParam 第一个参数(不带冒号)

转载 作者:行者123 更新时间:2023-11-29 07:54:12 25 4
gpt4 key购买 nike

请检查一下

  $user_id = (int)$_GET['user_id'];
$sql = 'DELETE FROM users WHERE user_id=:user_id';
$query = $db->prepare($sql);
$query->bindParam('user_id',$user_id,PDO::PARAM_STR);

$delete = $query->execute();

实际上它正在正常工作,并且它从数据库中删除了用户行

但这里的问题是我没有在绑定(bind)查询中写“:”该列我的意思是

这应该是错误的

$query->bindParam('user_id',$user_id,PDO::PARAM_STR);

这应该是正确的

$query->bindParam(':user_id',$user_id,PDO::PARAM_STR);

但它不会抛出任何异常,并且用户行已成功删除

对此有何解释?

最佳答案

这篇文章解释了为什么需要使用冒号。

Is the leading colon for parameter names passed to PDOStatement::bindParam() optional?

来自帖子:

No, since the documentation doesn't mention this I think it's safe to assume that this behaviour isn't officially supported and shouldn't be relied upon.

However, it does actually happen to work (in PHP 5.3.24 at least) - internally a colon will be added to the parameter if it's missing (see ext/pdo/pdo_stmt.c:363 in the PHP 5.3.24 source code).

关于PHP PDO 使用 bindParam 第一个参数(不带冒号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25591519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com