[英]Proper PHP/MySQL syntax help needed
我整天都在代碼中追尋一個錯誤。 這是它的長短:
我有一個通過查詢字符串傳遞的變量,我想在我的MySQLi查詢中使用該變量。 像這樣:
$variable;
$info = dbConnect('query');
$eInfo = "SELECT *
FROM tablename
WHERE fieldname = '$variable%'";
$eiData = $info->query($eInfo) or die(mysqli_error());
$eInfo = $eiData->fetch_assoc();
重點是變量名后的%。 我不是PHP專家,但我記得前一段時間已經掌握了這一技巧,除了我正在開發的新網站之外,它對我所有的數據庫驅動網站都有效。
上面的查詢不返回表中的任何數據。
但...
如果我省略%,如下所示:
$variable;
$info = dbConnect('query');
$eInfo = "SELECT *
FROM tablename
WHERE fieldname = '$variable'";
$eiData = $info->query($eInfo) or die(mysqli_error());
$eInfo = $eiData->fetch_assoc();
查詢執行,我得到我的數據。
為什么在使用“ $ variable%”語法編寫要在其中使用變量的查詢后,這將不再起作用? 只需放下%('$ variable')就可以正常工作,這讓我非常困惑。
對於它的價值,我運行一台專用服務器,並且最近安裝了suPHP,如果在這里有任何機會可以幫助您理解(PHP 5.2.17是我的當前版本)。
再說一次,我不是PHP專家,但是在檢查完我使用MySQLi查詢完成的舊網站的代碼后,將變量附加到查詢中時,%總是存在。
我完全死在這里的水中。 您所能提供的任何幫助都會令人發指,以至於無法解釋。
如果要將變量放在難以解釋變量名結尾的字符串中,請使用{$var}
如下所示:
$eInfo = "SELECT * FROM tablename WHERE fieldname LIKE '{$variable}%'";
%
是LIKE
查詢的通配符。 所以,如果你使用%
與查詢WHERE var = 'cow%'
,它會在數據庫中搜索文字字符串cow%
。
cow
cows
cow%
(匹配) the cow
在“贊”查詢中: WHERE var LIKE 'cow%'
將會匹配:
cow
(比賽) cows
(比賽) cow%
(匹配) the cow
參見MySQL模式匹配 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.