簡體   English   中英

是否可以在准備好的語句中使用 SELECT * ?

[英]Is it possible to use SELECT * in prepared statement?

是否可以在$stmt->prepare()查詢中使用*並使用bind_result()
例如,我必須以條件為參數在 1 個表中選擇 50 列,如果我鍵入所有 50 列,則需要時間。 那么在這種情況下我怎樣才能得到結果呢?

$stmt->prepare("Select * from table where col1 = ? and col2=? and col3=? and col4=?")
$stmt->bind_param("ssss",$col1, $col2, $col3, $col4)
$stmt->execute()

是的當然。
只需使用$res = $stmt->get_result()后跟熟悉的$row = $res->fetch_assoc()東西

但是,對於新手,確實嚴格建議您選擇 PDO 而不是 mysqli。

mysqli 僅使用問號作為占位符,因此您可以像往常一樣使用 *。

為了節省時間,如果您使用 PDO,您可以命名參數,然后批量分配它們。
例如

$sql = 'SELECT *
    FROM table
    WHERE col1=:myval OR col2=:myval OR col3=:myval';
$sth = $dbh->prepare($sql);
$sth->execute(array(':myval ' => 150));
$red = $sth->fetchAll();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM