/ / mysql_num_row()エラー - php、mysql

mysql_num_row()エラー - php、mysql

これは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時間それを理解しようとしている私はこれを見て、私は非常に不満を取得し始めているので、私はどのように感謝しているあなたに伝えることはできません:)