これはmysql_num_rows()関数を使用している間に発生しているエラーです
Error: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
ここに私のソースコードです:
$title = "SELECT * FROM item WHERE item.title LIKE % " .implode("% OR item.title LIKE % ", $data);
$title_result = mysql_query($title, $this->dbh);
echo mysql_num_rows($title_result);
私がやっていることは、ウェブサイト現在、私は4つのSelect文を実行しています。そして、それらのSQL文の4つすべてからデータベース内のすべてのものを合計したいと思います。私が正しく考えているのであれば、mysql_num_rows()はSelectステートメントから見つかった行の数を返します。だから理論的には、私は私が合計4つのSQL SELECTステートメントを一緒に追加することができない場合、私はこの考え方で正しいです、私は検索で私の合計を得るためにそれらを一緒に追加できると思っていた?
また、私のテストの検索はデータベースにあります。
助けを前にありがとう。
回答:
回答№1は0あなたのMySQLステートメントは正しく実行されませんでした。これはちょうど感傷ですが、あなたの $title
次のように:
$title = "SELECT * FROM item WHERE item.title LIKE "%".implode("%" OR item.title LIKE "%", $data)."%"";
その後、次のように実行します。
$result = mysql_query ($title, $this->dbh) or die (mysql_error($this->dbh));
注:これはあなたが信頼することを前提としています $data
。それが外部ソース(ユーザー指定の検索など)から来た場合、あなたは本当に経由で消毒する必要があります mysql_real_escape_string
または準備されたステートメント
回答№2の場合は1
あなたのクエリが実行に失敗したようです。戻り値を確認する必要があります mysql_query
試す前に mysql_num_rows
.
$title_result = mysql_query($title, $this->dbh);
if($title_result)
{
echo mysql_num_rows($title_result);
}
else
{
die(mysql_error());
}
あなたのケースで実際に何が起こっているのですか? mysql_query
戻ってくる false
これは有効なMySQL結果リソースではありません。 mysql_num_rows
次のエラーを返します。
Error: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
回答№3の場合は0
私の問題のすべてを修正してくれてありがとう。私は約2時間それを理解しようとしている私はこれを見て、私は非常に不満を取得し始めているので、私はどのように感謝しているあなたに伝えることはできません:)