繁体   English   中英

在 mysql php 查询中使用 IN 语句

[英]using IN statement in mysql php queries

大家好,我希望每个人都做得很好。

我想知道如何在 PHP Mysql 查询中使用 IN 语句,我在 DB 表中有这个例子,其中列名是 Model

Model column in mytable
A901:Y921:L102

我想删除:并在 PHP SQL 查询中使用它

SELECT * FROM mytable WHERE model IN (A901,Y921,L102)

我知道不可能这样调用它应该是IN ('A901','Y621','L102')

但是我怎样才能把它转换成这种方式呢? 我想进行此调用以从不同表中获取所有相关行。

我这样谦虚的尝试

    <?php 
    if($mytable->model)
    $mod = explode(':', $mytable->model);
    foreach($mod as $ac)
    { 
     echo $ac;
    ?>
RESULT: A901 Y921 L102

我接近你的帮助家伙。

$mod = explode(':', $mytable->model);
$pp = array_fill(0, count($mod), '?');
$paramPlaceholders = implode(',', $pp);

现在我们有一个像'?,?,?'这样的字符串。 这些是在 SQL 语法中使用的参数占位符。 您可以将数组作为参数值传递给准备好的语句:

$query = "SELECT * FROM mytable WHERE model IN ({$paramPlaceholders})";

$stmt = $pdo->prepare($query);

$stmt->execute($mod);

回复您的评论:

我使用 PDO,我推荐它而不是 mysqli。 mysqli 的等效代码将类似:

$query = "SELECT * FROM mytable WHERE model IN ({$paramPlaceholders})";

$stmt = $mysqli->prepare($query);

$stmt->bind_param(str_repeat("s", count($mod)), ...$mod);

$stmt->execute();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM