• 締切済み

MySQLにつなぐことができない。

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を使用しています。

みんなの回答

  • mickymac
  • ベストアンサー率37% (90/240)
回答No.3

WHERE句の後に条件がくるのかどうかわからない場合、決め打ちで WHERE 1 (MySQLの場合) としておくことでも回避可能です。その後に条件を加える場合は、AND から始められます。

回答No.2

>MySQL5.xを使用しているのですが、WHERE句が何もないとエラーになってしまうんですね。 where句を指定しなければ、この部分ではエラーになりません。 where句を指定しているのに、検索条件がなければ当然、エラーになります。 select * from t1 [where 検索条件式] [order by c1] これは標準SQLで定められた基本的な構文であり、SQLを採用しているどのRDBMSでも同じです。

回答No.1

>$sqli="select * from $news_table where order by id desc limit 5"; whereの条件がありませんが、プログラム中もそうなっていますか?

noname#76627
質問者

お礼

ありがとうございます。 WHERE句の条件がなかったので、whereをはずした後にSELECTやFROMを大文字に直して、もう一度行ったところ、無事事なきを得ました。 どうも誠にありがとう御座いました。 ちなみにMySQL5.xを使用しているのですが、WHERE句が何もないとエラーになってしまうんですね。