使用php在sql查询中的where条件中传递数组

卡尔蒂克

我正在尝试在 sql 查询中传递一个数组。

数组包含列名称作为索引,它们被分配给我使用 GET 方法获得的各自值。

例如,我正在尝试编译此代码:

$a='email';    
$b=array($a => $_GET['x']);    
$sql="SELECT * FROM users WHERE $b";    
echo $sql;

我需要的输出是:

SELECT * FROM users WHERE email='/*value of $_GET['x']*/'

我得到的输出是:

SELECT * FROM users where Array

有人可以帮助我如何使它工作。

Nigel Ren

您需要操作$b数组以使其成为您之后的字符串,目前它只是以自己的格式转储内容。

这个版本会做你之后的...

$b=array($a => $_GET['x']);  
$columns = [];
foreach ( $b as $name => $value )   {
    $columns[] = "$name = '$value'";
}
$sql="SELECT * FROM users WHERE ".implode(" and ", $columns);
echo $sql.PHP_EOL;

我已将其and用作链接多列的条件,您可以根据自己的要求进行更改。

此版本改为使用绑定参数,插入占位符而不是查询中的值,然后您需要将$data数组绑定到准备好的语句(如何取决于您使用的 API)。这更安全,更灵活(并推荐)......

$b=array($a => $_GET['x']);
$columns = [];
$data = [];
foreach ( $b as $name => $value )   {
    $columns[] = "$name = ?";
    $data[] = $value;
}
$sql="SELECT * FROM users WHERE ".implode(" and ", $columns);
echo $sql.PHP_EOL;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Mysql查询where条件使用或在php中

来自分类Dev

使用 WHERE IN 子句检查多维数组中的值的 SQL 查询

来自分类Dev

在SQL随机查询中添加where条件

来自分类Dev

使用WHERE条件,查询结果中列名

来自分类Dev

在()中的Where中传递查询

来自分类Dev

在()中的Where中传递查询

来自分类Dev

MongoDB使用OR条件从数组中构建查询

来自分类Dev

Laravel 查询中具有 where 条件的数组值

来自分类Dev

SQL 查询中的条件

来自分类Dev

使用php中的几个条件的mongodb查询

来自分类Dev

在CodeIgniter查询中传递数组

来自分类Dev

在CodeIgniter查询中传递数组

来自分类Dev

在CodeIgniter查询中传递数组

来自分类Dev

PHP MYSQL查询未将数组传递到我的变量中

来自分类Dev

使用PHP在SOAP查询中呈现的数组

来自分类Dev

递归函数返回数组值,使用php中该函数之外的sql查询中的值

来自分类Dev

如何从mysql php中的数组创建where条件

来自分类Dev

Rails 4-ActiveRecord支持使用WHERE的查询中的OR条件

来自分类Dev

在 Laravel 查询中的 where 条件中使用数字

来自分类Dev

从PHP数组中的SQL查询中删除数据

来自分类Dev

在 Postgresql 中的 WHERE 中使用 JSON 数组进行查询

来自分类Dev

sql查询中的条件所在

来自分类Dev

在SQL查询中添加条件

来自分类Dev

Hibernate中的条件SQL查询

来自分类Dev

在SQL查询中应用if条件

来自分类Dev

在SQL查询中编写条件

来自分类Dev

使用where条件的SQL子查询

来自分类Dev

SQL查询中的WHERE子句

来自分类Dev

SQL 中的 WHERE 条件 (ORACLE)