我目前有一个表有一个名为lindex的int(11)。
在另一个表“landtb”中,它有一个auto_increment index int(11),称为index。
我已经检查过两者都有正确的变量,即4。
涉及的查询和代码是:
$lindex = $addressRow['lindex'];
$landQuery = \mysqli_query($connection, "SELECT * FROM landtb WHERE index='$lindex'");
$landRow = \mysqli_fetch_array($landQuery);
我已经回复了$ lindex的内容,它也显示了正确的值“4”,但是当我运行代码时,我得到以下内容:
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\Documents and Settings\Garry\My Documents\Dropbox\htdocs\Websites\The_Archive\propertySQL.php on line 43
如果我将lindex更改为字符串,然后还更改landQuery的WHERE以查看名称,它可以正常工作并拉出行。所以出于某种原因,它只是在搜索索引时遇到问题。
我现在已经待了一个小时了,我觉得我会做一些非常愚蠢的事情,就像在c中留下分号一样。我不会对这个问题产生任何影响,但我正在使用netbeans。
任何帮助都将不胜感激。
答案 0 :(得分:1)
index
是MySQL中的保留关键字,如果要将其用作列名,则必须使用反引号引用它:
$landQuery = \mysqli_query($connection, "SELECT * FROM landtb WHERE `index`='$lindex'");
您应该始终检查查询失败:
if (!landQuery) {
die (mysqli_error($connection));
}
这将显示MySQL错误消息。它可能表示您在index
附近有语法错误。