gpt4 book ai didi

PDO:将多余的参数传递给准备好的语句

转载 作者:行者123 更新时间:2023-12-04 14:15:35 24 4
gpt4 key购买 nike

您能否使用 PDO 向准备好的语句发送比需要更多的参数而没有不良副作用?

这似乎是一个奇怪的问题,但我问是因为我连续有 4 个查询,它们都使用相似和不同的参数。查询的相关部分:

1st(选择,与其他人不同的表):WHERE threadID = :tid
第二个(选择):WHERE user_ID = :u_ID AND thread_ID = :tid
第三个(如果第二个成功则更新):SET time = :current_time WHERE user_ID = :u_ID AND thread_ID = :tid
第 4 个(如果第 2 个不成功则插入):VALUES (:u_ID, :tid, :current_time)
我可以在开头用三个参数声明一个数组并将其用于所有 4 个查询吗?

为了解决任何混淆,查询将单独执行。它是重用的参数变量,因此这意味着某些查询将接收他们不需要的参数。所以像:

$parameters = array(':tid' => $tid, ':u_ID' => $u_ID, ':current_time' => $time);

$1st = $db->prepare($query1);
$1st->execute($parameters);

$2nd = $db->prepare($query2);
$2nd->execute($parameters);

$3rd = $db->prepare($query3);
$3rd->execute($parameters);

$4th = $db->prepare($query4);
$4th->execute($parameters);

如果可以,我应该吗?这会减慢我的数据库或脚本的速度或导致安全漏洞吗?

如果我可以让这个问题更清楚一点,请提问。

谢谢!

最佳答案

也许documentation自从第一次问这个问题以来已经更新,但现在已经很清楚地说明了“

You cannot bind more values than specified; if more keys exist in input_parameters than in the SQL specified in the PDO::prepare(), then the statement will fail and an error is emitted.



这些 answers应该有助于过滤掉额外的参数。

关于PDO:将多余的参数传递给准备好的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13491802/

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