0

そこで、MySQL から情報を取得できるようにしたいと考えています。私の PHP コードでは、クエリを呼び出して、次のような方法で情報をエコーし​​ます。

$sql = "SELECT * FROM `person`";
$rs = $COMMON->executeQuery($sql, $_SERVER["SCRIPT_NAME"]);

while($row = mysql_fetch_row($rs)){
    echo ("Name: ".$row['name']."<br />";
    echo ("Gender: ".$row['gender']."<br />";
    echo ("Age: ".$row['age']."<br />";
};

$row['name']ただし、と残りの実際の値は完全に空白です。スペース一つもありません。ただし、そうのように実際の列インデックスで呼び出すと$row[1]、正しい値が得られます。

たとえば、テーブルに 3 人がいたとします。最終結果ページは次のようになります。

Name: 
Gender: 
Age: 
Name: 
Gender: 
Age:
Name: 
Gender: 
Age:

私が間違っていることはありますか?クエリ値ではなく、この空の文字列が表示されるのはなぜですか?

MySQL データベースは MyPHPAdmin に保存されます。それが違いを生むかどうかはわかりません。必要と思われる情報が不足している場合は、お知らせください。ありがとう!

4

2 に答える 2

7

mysql_fetch_assoc()の代わりに使用する必要がありますmysql_fetch_row()mysql_fetch_assoc()結果の連想配列を返します。mysql_fetch_row()数値配列を返します。

mysql_*新しいコードで関数を使用しないでください。それらはもはや保守されておらず、公式に非推奨です赤いボックスが見えますか? 代わりにプリペアド ステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事は、どちらを決定するのに役立ちます。PDO を選択する場合は、ここに良いチュートリアルがあります。

于 2013-03-30T16:00:56.943 に答える
1

コードを次のように変更します:-

$sql = "SELECT * FROM `person`";
$rs = $COMMON->executeQuery($sql, $_SERVER["SCRIPT_NAME"]);

while($row = mysql_fetch_assoc($rs)){
echo ("Name: ".$row['name']."<br />";
echo ("Gender: ".$row['gender']."<br />";
echo ("Age: ".$row['age']."<br />";
};

mysql_fetch_assoc() は、その名前が示すように、連想配列を返します (列名をキーとして、値を行値として)。

于 2013-03-30T16:20:17.000 に答える