人生最悪の忘れ物

PHPで、データベースからデータを取得しようとしたのですが、データベースもパスワードもデータも完璧なのに、以下のようなエラーが出てしまい、1週間不眠不休で調べましたが、全く解決できません。

<エラー>
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\xampp\htdocs\merhen\data\index.php on line 98

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\merhen\data\index.php on line 99

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\merhen\data\index.php on line 101

<コード>
$sqli="select * from $news_table where order by id desc limit 5";

//SQLで引き抜いて変数に格納する
if(($dbhi = mysql_connect($host,$database_user,$database_password)) != FALSE){
mysql_select_db($dbname) or die("Connect Error!");
$resi = mysql_query($dbhi,$sqli);
$counti = mysql_num_rows($resi);


エラーの意味は分かるんですが、全く解決策がわからないので、精魂尽き果ててしまいそうな状態です。

納期が明日ですので、すぐに回答がいただければと思います。

XAMPP1.6.3a及びPHP5.2を使用しています。

A 回答 (3件)

WHERE句の後に条件がくるのかどうかわからない場合、決め打ちで



WHERE 1
(MySQLの場合)

としておくことでも回避可能です。その後に条件を加える場合は、AND
から始められます。
    • good
    • 0

>MySQL5.xを使用しているのですが、WHERE句が何もないとエラーになってしまうんですね。



where句を指定しなければ、この部分ではエラーになりません。
where句を指定しているのに、検索条件がなければ当然、エラーになります。

select * from t1 [where 検索条件式] [order by c1]

これは標準SQLで定められた基本的な構文であり、SQLを採用しているどのRDBMSでも同じです。
    • good
    • 0

>$sqli="select * from $news_table where order by id desc limit 5";



whereの条件がありませんが、プログラム中もそうなっていますか?
    • good
    • 0
この回答へのお礼

ありがとうございます。

WHERE句の条件がなかったので、whereをはずした後にSELECTやFROMを大文字に直して、もう一度行ったところ、無事事なきを得ました。

どうも誠にありがとう御座いました。

ちなみにMySQL5.xを使用しているのですが、WHERE句が何もないとエラーになってしまうんですね。

お礼日時:2008/11/25 08:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す