gpt4 book ai didi

php - 使用 IN() 函数准备 MySQL 语句

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

现在我这样做了:

$params = array(1,2,3);
$sql = 'select * from foo where bar in (%s)';

$sql = sprintf($sql,
implode(',', $params)
);

$params 由用户提供,因此显然不安全。我怎样才能解决这个问题?我更喜欢使用像 Zend 这样的框架。

最佳答案

你可以使用 prepared statementsPDO :

$dbh    = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$params = array(1,2,3);
$values = implode(',', array_fill(0, count($params), '?')); // ?,?,?
$sql = "select * from foo where bar in ($values)";
$stmt = $dbh->prepare( $sql );

$stmt->execute( $params );

通过使用准备好的语句,您可以避免转义数据。不过,您仍然需要对其进行验证。

关于php - 使用 IN() 函数准备 MySQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7158078/

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