我無法將我的代碼從sql轉換爲mysqli。 $ XX可以是1或0.當$ XX = 1時,我想要搜索它。當$ XX = 0時,不能搜索$ XX。同樣是$ YY。使用變量變量將sql轉換爲mysqli_prepare
舊代碼
$sql = "SELECT name FROM tabel WHERE 1=1";
if (!empty($XX)) {$sql .= " AND XX = 1 ";}
if (!empty($YY)) {$sql .= " AND YY = 1 ";}
當$ XX = 1和$ YY = 1,代碼將是這樣的:
$sql = "SELECT name FROM tabel WHERE 1=1 AND XX = 1 AND YY = 1";
當$ XX = 0,$ YY = 1,代碼看起來像:
$sql = "SELECT name FROM tabel WHERE 1=1 AND YY = 1";
當$ XX = 0,$ YY = 0,則代碼如下:
$sql = "SELECT name FROM tabel WHERE 1=1";
'問題'是我不想搜索XX = 0,因爲它排除了所有XX = 1個答案。當XX = 0時,它不應該搜索XX。
新代碼
$stmt = mysqli_prepare($link, "SELECT name FROM tabel WHERE XX=? and YY=?");
mysqli_stmt_bind_param($stmt, "ii", $XX, $YY);
誰知道mysqli的代碼必須看怎麼樣?謝謝!
是調用帶參數變量數量bind_param() xx或yy用戶輸入? – Ali
@Chosen Wann是$ XX和$ YY都是用戶輸入。 – Helena
將您的代碼轉換爲PDO,您的麻煩就少得多。 –