ホームページ  >  記事  >  バックエンド開発  >  日曜日に皆さんにご迷惑をおかけして申し訳ありませんが、mysql 関連の問題でとても心配しています。

日曜日に皆さんにご迷惑をおかけして申し訳ありませんが、mysql 関連の問題でとても心配しています。

WBOY
WBOYオリジナル
2016-06-13 13:34:17926ブラウズ

日曜日に皆さんにご迷惑をおかけして申し訳ありませんが、とても不安です... 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を直接出力して確認してください
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。