簡體   English   中英

無法在php mysql查詢中添加更多搜索變量

[英]Trouble adding more search variables in php mysql query

我試圖添加到mysql搜索數組$。 如下所示,實際腳本運行良好:

$sql = 'SELECT item, IdPhotos FROM purchases WHERE username = ? AND sname = ?';
$params = array( $login, $sname );

if ( isset( $_GET['q'] ) ) {
  $sql .= " AND cusername LIKE ?";
  $params []= '%'.$_GET['q'].'%';
}

但是,我試圖添加兩個更多的搜索變量。 但是,我的腳本告訴我第14行存在未知錯誤。我在做什么錯?

   ...
    if ( isset( $_GET['q'] ) ) {
      $sql .= " AND (cusername LIKE ? OR myname LIKE ? OR item LIKE ?)";
 //line 14 below 
      $params []= '%'.$_GET['q'].'%';                                                        
    }

您添加的參數數量與添加參數符號的數量不同。

這是您的解決方法,盡管草率。 在這種情況下,您應該轉換為命名參數。

if ( isset( $_GET['q'] ) ) {
    $sql .= " AND (cusername LIKE ? OR myname LIKE ? OR item LIKE ?)";

    $params[] = '%'.$_GET['q'].'%';                                                        
    $params[] = '%'.$_GET['q'].'%';   
    $params[] = '%'.$_GET['q'].'%';   
}

使用命名參數如下所示:

if ( isset( $_GET['q'] ) ) {
    $sql .= " AND (cusername LIKE :name OR myname LIKE :name OR item LIKE :name)";

    $params[':name'] = '%'.$_GET['q'].'%';                                            
}

這樣,它將自動替換命名參數的每個實例。

暫無
暫無

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

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