我整天都在寻找代码中的错误。这是它的长短:
我有一个通过查询字符串传递的变量,我想在我的 MySQLi 查询中使用该变量。 A-像这样:
$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') 就可以正常工作,这让我感到非常困惑。
为了它的值(value),我运行了一个专用服务器并且最近安装了 suPHP,如果它有任何远程机会在这里帮助有意义(PHP 5.2.17 是我当前的版本)。
再说一次,我不是 PHP 高手,但在检查了我用 MySQLi 查询完成的旧站点的代码后,在将变量附加到查询中时,% 总是存在。
我完全死在了这里的水中。如果您能提供任何帮助,我们将不胜感激,以至于无法解释。
最佳答案
如果你想把变量放在一个难以解释变量名结束位置的字符串中,请像这样使用 {$var}
:
$eInfo = "SELECT * FROM tablename WHERE fieldname LIKE '{$variable}%'";
关于php - 需要正确的 PHP/MySQL 语法帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10908086/