0

重複の可能性:
mysql_fetch_array()は、パラメーター1がリソースであり、ブール値がselectで指定されていることを想定しています。

背景情報:

SELECT、SHOW、DESCRIBE、EXPLAIN、および結果セットを返すその他のステートメントの場合、mysql_query()は成功した場合はリソースを返し、エラーの場合はFALSEを返します。

他のタイプのSQLステートメント(INSERT、UPDATE、DELETE、DROPなど)の場合、mysql_query()は成功した場合はTRUEを返し、エラーの場合はFALSEを返します。

SELECTが成功時にリソースを返す場合、実際には成功時にTRUEを返しますか?それで、それはまだ有効ですか?:

<?php
$result = mysql_query('SELECT * WHERE 1=1');
if ($result) {
    //resultset is valid?
}

?>

私はそれがほぼ確実ですが、それはどのように機能しますか?mysql_query()はいくつかのプロパティを返すだけですか?

4

1 に答える 1

2

ブール値に関するPHPマニュアルエントリから:

ブール値に変換する場合、次の値はFALSEと見なされます。

  • ブール値FALSE自体
  • 整数0(ゼロ)
  • フロート0.0(ゼロ)
  • 空の文字列、および文字列「0」
  • 要素がゼロの配列
  • メンバー変数がゼロのオブジェクト(PHP 4のみ)
  • 特殊型NULL(未設定変数を含む)
  • 空のタグから作成されたSimpleXMLオブジェクト

他のすべての値はTRUEと見なされます(リソースを含む)。

強調は私のものですが、あなたの状況に当てはまります。

mysql_*また、コード内の関数を使用しないでください。これらの機能は維持されなくなり、非推奨になりました。代わりに、MySQLiまたはPDOのいずれかを使用する必要があります。どちらを使うべきかわからない?この記事が役立つはずです。

于 2012-11-15T00:22:58.863 に答える