应该返回整数的查询返回布尔值

时间:2012-09-26 13:25:57

标签: php mysql

我正在尝试运行此查询:

$query="SELECT max(templateid) FROM vtiger_emakertemplates";
$sql_result = mysql_query($query);

它显示的错误是:

  

警告:mysql_fetch_array()期望参数1为资源,布尔值为

它应该给我一个整数值,但它返回一个布尔值。 列templateid仅包含整数值。我无法理解布尔值的来源。有什么想法吗?

这是完整的代码

    $conncity=mysql_connect($dbconfig['db_hostname'],$dbconfig['db_username'],$dbconfig['db_password']);
    mysql_select_db($dbconfig['db_name'],$conncity);

    $query="SELECT max(templateid) FROM vtiger_emakertemplates";
    $sql_result = mysql_query($query);
    $id=mysql_fetch_array($sql_result);

5 个答案:

答案 0 :(得分:4)

替换

$sql_result = mysql_query($query);

$sql_result = mysql_query($query) or die(mysql_error());

它会告诉你在查询中出错的地方。

答案 1 :(得分:1)

这可能是因为$ sql_query返回false。 在应用mysql_fetch_array之前,你应该检查$ sql_result值。

答案 2 :(得分:1)

假设你在做:

mysql_fetch_array($sql_result)

错误意味着$sql_result是一个布尔值,可能是false。这意味着mysql_query($query)返回false,因此您的查询失败。

检查mysql_error()的错误,看看发生了什么错误。

答案 3 :(得分:0)

像这样更改您的查询。

$query = "SELECT MAX(templateid) as MaxID  FROM vtiger_emakertemplates";

并获取这样的值。

$sql_result = mysql_query($query);
$row = mysql_fetch_array($sql_result);
echo $row['MaxID'];

答案 4 :(得分:0)

在获取阵列之前,您应该验证您是否收到了良好的结果。

$query="SELECT max(templateid) as MaxID FROM vtiger_emakertemplates";
$sql_result = mysql_query($query);
if ($sql_result) {
  $id=mysql_fetch_array($sql_result);
  $maxID = $id[MaxID];
} else $maxID = false;
if (!$maxID) {
   print "There are no templateid's in vtiger_emakertemplates.\n";
}

另外,当我调试PHP / MySQL应用程序时,我发现使用 phpMyAdmin 或其他应用程序直接在MySQL数据库中测试我的查询很有帮助,因为它提供了即时查询语法错误,并允许我快速进行更改以找到正确的查询语法。