日曜日に皆さんにご迷惑をおかけして申し訳ありませんが、とても不安です... mysql についての質問
PHP コード
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
$query=mysql_query("select * from user where id={$_POST['id']}");
while($result=mysql_fetch_array($query)){
echo $result['name'];
}
ログイン後にコピー
これは単純な php クエリ プログラムです。ここで問題が発生します。つまり、$_POST['id'] がテーブル内に見つからない場合、つまり、mysql_query() は結果を見つけることができません。
ページには結果が表示されませんが、FF を使用してパケットをキャプチャすると、エラー応答は次のようになります:
mysql_fetch_array(): 指定された引数は ././ 内の有効な MySQL 結果リソースではありません。 / xx 行目
今はエラーを報告させたくないので、プログラムに判定を追加したいです。どのように追加すればよいでしょうか?
if($query) if($query != false) if(mysql_num_rows($query) を試しましたが、無駄でした。
mysql_query がクエリできない場合、ポインタまたは false を返しますか?
この判決はどのように書けばよいでしょうか?お願いします。ありがとうございます...
-----解決策---------まず var_dump(mysql_fetch_array($query))) を実行して、何が返されるかを確認してください。
------解決策--------あなたが言ったようにすべきではありません
mysql_query () 一致する結果をクエリすると、リソース タイプの結果セットが返されます
一致する結果がない場合、リソース タイプの結果セットが返されます
クエリ エラーがある場合は false を返します
------解決策------------------その理由はあなたの a.php です。
コードを投稿し、mysql.php も投稿するとよいでしょう。
------解決策---------いいえ。
エラーが発生した場合は、$_POST['id'] が値を取得できなかった可能性があります。それ以外の場合、エラーは報告されません。
------解決策----------------------メソッドを投稿する必要はありません。直接使用してください。 Get は mysql.php を実行し、同じ ID を使用して結果を確認します。
------解決策---------$query=mysql_query("select * from user where id={$_POST['id']}");
$_POST['id'] が存在しないか空の場合、SQL コマンドは
select * from user where id=
$_POST['id'] が数値以外の場合、SQL コマンドは
select * from user where id=xxx
xxx です。文字列
の場合、クエリエラーは必ず発生します!
エラーが発生すると、テキスト タイプのエラー メッセージが表示されます。この ff を確認するには、実際にパケットをキャプチャする必要があります。
------解決策---------おい、Firefox を使っているはずだ!ぜひ見てみてください。
------解決策---------SQLを直接出力して確認してください