gpt4 book ai didi

php - 准备好的陈述 - 它们是否必要

转载 作者:可可西里 更新时间:2023-11-01 00:03:39 24 4
gpt4 key购买 nike

Prepared statments 添加了大量代码……但我一直听到有人提到要使用它们……从 1 行代码增加到大约 6 行代码会增加什么值(value)?这仅仅是为了防止sql注入(inject)吗?

类似帖子 here .

php.net 关于准备好的语句 here

最佳答案

准备好的语句可以很好地防止 SQL 注入(inject)。

除了 SQL 注入(inject)保护之外,当同一个查询被多次执行时,准备好的语句可以减少数据库服务器的负载,例如在 INSERT 循环中。该语句仅由 RDBMS 编译一次,而不需要像在 mysql_query() 调用中那样每次都编译。

不同的 API 需要不同数量的代码来执行准备好的语句。我发现 PDO 可以比 MySQLi 稍微简洁一点,例如,如果您的情况允许在 execute() 调用中使用隐式参数绑定(bind)。这仅在您的所有参数都可以作为字符串进行评估时才有效。

// PDO implicit binding example:
// Not many lines of code if the situation allows for it
$stmt = $pdo->prepare("SELECT * FROM tbl WHERE col1=? AND col2=? AND col3=?");
$stmt->execute(array($val1, $val2, $val3));

关于php - 准备好的陈述 - 它们是否必要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7380657/

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