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