[英]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.