繁体   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