2012-09-26 61 views
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); 
+0

錯誤發生在您未發佈的代碼中。請發佈如何使用'$ sql_result' – J0HN

回答

4

更換

$sql_result = mysql_query($query);

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

,它會告訴你,你在查詢中犯了一個錯誤。

+0

謝謝你就是這樣。 – Nagri

1

這可能是由於$ sql_query返回false。 您應該在應用mysql_fetch_array之前檢查$ sql_result的值。

1

假設你正在做的:

mysql_fetch_array($sql_result) 

的錯誤意味着$sql_result是一個布爾值,大概false。這意味着mysql_query($query)返回false,所以您的查詢失敗。

mysql_error()檢查錯誤,看看發生了什麼錯誤。

+0

謝謝你幫助! – Nagri

0

像這樣改變你的查詢。

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

並獲取像這樣的值。

$sql_result = mysql_query($query); 
$row = mysql_fetch_array($sql_result); 
echo $row['MaxID']; 
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數據庫測試我的查詢,並讓我快速進行更改以查找正確的查詢語法。