簡體   English   中英

需要正確的PHP / MySQL語法幫助

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

  1. cow
  2. cows
  3. cow% (匹配)
  4. the cow

在“贊”查詢中: WHERE var LIKE 'cow%'將會匹配:

  1. cow (比賽)
  2. cows (比賽)
  3. cow% (匹配)
  4. the cow

參見MySQL模式匹配

暫無
暫無

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

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