0

我正在尝试运行此查询:

$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);
4

5 回答 5

4

代替

$sql_result = mysql_query($query);

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

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

于 2012-09-26T13:28:58.977 回答
1

这可能是由于 $sql_query 返回 false。您应该在对其应用 mysql_fetch_array 之前检查 $sql_result 值。

于 2012-09-26T13:28:59.003 回答
1

假设你正在做:

mysql_fetch_array($sql_result)

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

检查错误mysql_error()以查看给出的错误。

于 2012-09-26T13:29:43.777 回答
0

像这样更改您的查询。

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

并像这样获取价值。

$sql_result = mysql_query($query);
$row = mysql_fetch_array($sql_result);
echo $row['MaxID'];
于 2012-09-26T13:42:52.777 回答
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 数据库中测试我的查询很有帮助,因为它提供即时查询语法错误,并允许我快速进行更改以找到正确的查询语法.

于 2012-09-26T13:51:24.050 回答