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

あなたがやっていると仮定します:

mysql_fetch_array($sql_result)

エラーは$sql_result、おそらくブール値であることを意味しますfalse。これは、mysql_query($query)false が返されたため、クエリが失敗したことを意味します。

でエラーをチェックして、mysql_error()どのエラーが発生したかを確認します。

于 2012-09-26T13:29:43.777 に答える
1

これはおそらく、$sql_query が false を返すためです。mysql_fetch_array を適用する前に $sql_result の値を確認する必要があります。

于 2012-09-26T13:28:59.003 に答える
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 に答える
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 に答える