PHP MySQLi获取数组自动递增int失败

时间:2014-02-11 12:39:06

标签: php mysql mysqli

我目前有一个表有一个名为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。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

index是MySQL中的保留关键字,如果要将其用作列名,则必须使用反引号引用它:

$landQuery = \mysqli_query($connection, "SELECT * FROM landtb WHERE `index`='$lindex'");

您应该始终检查查询失败:

if (!landQuery) {
    die (mysqli_error($connection));
}

这将显示MySQL错误消息。它可能表示您在index附近有语法错误。