gpt4 book ai didi

php - 使用 mysqli_* 连接时 aura/sqlquery 中的变量绑定(bind)

转载 作者:行者123 更新时间:2023-11-28 23:30:39 25 4
gpt4 key购买 nike

我有一个使用 mysqli_*() 函数的遗留应用程序(实际上,它使用 mysql_*() 函数。啊!)。我正在使用 aura/sqlquery作为 SQL 查询生成器。例如:

$queryFactory = new Aura\SqlQuery\QueryFactory('mysql');
$select = $queryFactory->newSelect();
$select->from('sometable AS t')
->where('t.field1 = 0')
->where("t.field2 <> ''");

然后我们通过转换为字符串来获取原始 SQL:

$sql = (string) $select;

现在我想在 where() 中做一些变量绑定(bind):

$select->where('t.somefield = ?', $somevalue);

当我转换为字符串时,转义/绑定(bind)似乎从未发生过。似乎只有在使用 PDO 和准备好的语句时才会发生绑定(bind)。

在使用 mysqli 连接时如何在 aura/sqlquery 中获取变量绑定(bind)有什么想法吗?

最佳答案

如果您的 PHP 版本 >= 5.6,这里有一个函数可用于从 aura/sqlquery 对 mysqli 运行查询

function mysqli_query_params($mysqli, $query, $params, $types = NULL)
{
$statement = $mysqli->prepare($select);
$types = $types ?: str_repeat('s', count($params));
$statement->bind_param($types, ...$params);
$statement->execute();
return $statement;
}

像这样使用

mysqli_query_params($mysqli, $select->getStatement(), $select->getBindValues())

关于php - 使用 mysqli_* 连接时 aura/sqlquery 中的变量绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37427627/

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