gpt4 book ai didi

php - MySQLi 中的参数

转载 作者:可可西里 更新时间:2023-10-31 23:05:57 25 4
gpt4 key购买 nike

我正在将 PHP 与 MySQLi 结合使用,我遇到了类似这样的查询

SELECT $fields FROM $table WHERE $this=$that AND $this2=$that2

到目前为止,我已经编写了一些代码来拼接我给它的数组,例如:

$search = array(name=michael, age=20) //turns into
SELECT $fields FROM $table WHERE name=michael AND age=20

有没有更有效的方法来做到这一点?

我很担心 MySQL 注入(inject) - 这似乎非常脆弱。谢谢!

最佳答案

奇怪的是,您问题的标题基本上就是问题的答案。你想做这样的事情,使用 mysqli 参数化查询:

$db = new mysqli(<database connection info here>);
$name = "michael";
$age = 20;

$stmt = $db->prepare("SELECT $fields FROm $table WHERE name = ? AND age = ?");
$stmt->bind_param("si", $name, $age);
$stmt->execute();
$stmt->close();

更多信息在 mysqli section of the manual ,特别是与 MySQLi_STMT 相关的功能.

请注意,我个人更喜欢使用 PDO在 mysqli 上,我不喜欢 mysqli 做的所有 bind_param/bind_result 东西。如果我必须使用它,我会围绕它编写一个包装器,使其更像 PDO。

关于php - MySQLi 中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/728229/

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