簡體   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