php - PHP 中的 SQL 查询,谓词位于数组中

标签 php mysql sql arrays

我想使用数组中的参数在 PHP 中准备 SQL 查询。它应该是一份准备好的声明。

假设这是我带参数的数组

$params = array("arg1" => 1, "arg2" => 0, "arg3" => 1)

我希望我的查询看起来像

SELECT * FROM table WHERE arg1 = 1 AND arg2 = 0 AND arg3 = 1

最佳答案

$qry= 'SELECT * FROM table WHERE ';
foreach($params as $key => $value)
{
    $qry .= $key . '=' . $value . ' AND ';
}
$qry = substr($qry, 0, -5); // remove last ' AND '

这应该足以让您开始。根据您运行的 MySQL/SQL/PHP 版本,您可能需要在变量周围加上引号。此解决方案不解决 SQL injection或准备好的陈述。您可以添加 ?:variable,具体取决于您如何构造准备好的语句。

其他选项...您可以将数组内爆为“AND”分​​隔的字符串。请参阅堆栈溢出问题 How to use array variable into mysql query in php/mysql

关于php - PHP 中的 SQL 查询,谓词位于数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55673188/

相关文章:

javascript - 刷新验证码,也刷新整个注册表

php - 无法使用php在mysql数据库中插入数据

php - AWS Flask session 不会从 PHP 请求中持久化

mysql - 在数据没有 key 的情况下使用 JSON 提取

mysql - SQL 简化

php - 无法使用准备好的语句保存到数据库中

mysql - 如何将查询结果保存在变量中并在另一个查询中使用它

php - 根据ID获取mysql数组的乘积

sql - 从单个表中两次选择同一列但条件不同

sql - PostgreSQL 参数窗口大小