下の図に示すように、プログラムがデータベース データを読み取れないのはなぜですか?
コードにはいくつかの問(wèn)題があります:
データベースに接続した後、データ テーブル操作 mysql_select_db()
要在查詢操作mysql_query()
を選択する前に、それ以外の場(chǎng)合、クエリはどのデータ テーブルを検索するかを認(rèn)識(shí)せず、ステートメントはデータベース全體で直接実行されます。ただし、SQL ステートメントの記述方法がデータベース上のクエリの形式に準(zhǔn)拠していないため、実行は失敗します。つまり、データがありません。
mysql_query()
對(duì)于SELECT
語(yǔ)句,返回的是一個(gè)資源引用或者FALSE
值,要遍歷里面所有的行需要使用mysql_fetch_assoc()
リソースを走査し、行データを返します。
PHP起動(dòng)時(shí)にエンジンが認(rèn)識(shí)するロゴなので、<?php
的問(wèn)號(hào)和php
を分けて書(shū)かないことをお?jiǎng)幛幛筏蓼?/p>
それでは、
最初のポイントは、mysql_select_db()
行と mysql_query()
行の位置を交換します。 mysql_select_db()
和mysql_query()
兩行調(diào)換位置。
第二點(diǎn),將foreach($result as $row)
改為while($row = mysql_fetch_assoc($result))
2 番目のポイント、foreach($result as $row)
を while($row = mysql_fetch_assoc($result))
に変更します
mysql_query() は、SELECT、SHOW、EXPLAIN、DESCRIBE ステートメントの場(chǎng)合のみリソース識(shí)別子を返し、クエリが正しく実行されなかった場(chǎng)合は FALSE を返します。
他のタイプの SQL ステートメントの場(chǎng)合、mysql_query() は正常に実行された場(chǎng)合は TRUE を返し、エラーが発生した場(chǎng)合は FALSE を返します。
FALSE 以外の戻り値は、クエリが有効であり、サーバーによって実行できることを意味します。これは、影響を受ける行數(shù)または返される行數(shù)については何も示しません。クエリが正常に実行されたものの、行に影響を與えなかったり、行が返されなかったりする可能性があります。
mysql_fetch_assoc() 関數(shù)は、結(jié)果セットから行を連想配列としてフェッチします。
結(jié)果セットから取得した行に基づいて生成された連想配列を返します。行がない場(chǎng)合は false を返します。