在我的news.php文件中,我使用下面的代碼來讀取我的函數Paginator與我的$search
變量,如果用戶發送此字段。如果用戶沒有發佈我的輸入,我打電話給我的Paginator 而沒有$search
變量。警告:無效的參數編號:綁定變量的數量與令牌數量不匹配
if(isset($_POST['search']) && $_POST['search'] != 'Search:'){
$search = $_POST['search'];
Paginator('news', "WHERE title LIKE ? ORDER BY date DESC", $max, $link, $pag, $search);
}
else{
Paginator('news', "ORDER BY date DESC", $max, $link, $pag);
}
然後在我的功能分頁程序我想做一個不同的選擇,這取決於如果我通過我的變量$搜索(如果用戶張貼此變量)或沒有。
那麼下面這是我的功能做一個分頁程序:(但我只把這裏的功能是很重要的一部分,我的問題)
function Paginator($table, $cond, $max, $link, $pag, $search = NULL){
$pdo = conect();
if($search){
$read = $pdo->prepare("SELECT * FROM {$table} {$cond}");
$read->bindValue(1,"%$search%",PDO::PARAM_STR);
$read->bindParam(2,$table,PDO::PARAM_STR);
$read->bindParam(3,$cond,PDO::PARAM_STR);
}
else{
$read = $pdo->prepare("SELECT * FROM {$table} {$cond}");
$read->bindParam(1,$table,PDO::PARAM_STR);
$read->bindParam(2,$cond,PDO::PARAM_STR);
}
$read->execute();
}
這是我的形式:
<form name="searchpost" action="" method="post">
<input type="text" name="search" onclick="if(this.value=='Search:')this.value=''" onblur="if(this.value=='')this.value='Search:'" value="Search:" />
<input type="submit" value="Search" name="sendForm" />
</form>
但我一直有這個錯誤:
警告:PDOStatement :: execute():SQLSTATE [HY093]:無效的參數編號:綁定變量的數量不匹配托克數ns在我的函數Paginator in $ read-> execute();
你可以給我一些幫助,試圖找到我做錯了什麼?
'$ table'和'$ cond'不應該綁定到查詢。 –
那麼當你的查詢只有一個時,你爲什麼要綁定3個變量?表名不能綁定 –