我正在尝试运行此查询:
$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);
答案 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数据库中测试我的查询很有帮助,因为它提供了即时查询语法错误,并允许我快速进行更改以找到正确的查询语法。