0
<?php
class Page {
    function getPage($urlOfPage){
        $result = mysql_query('SELECT category, title FROM rs-planet WHERE url = "'.  mysql_real_escape_string($urlOfPage));
        if(mysql_num_rows($result) === 0){
            header('HTTP/1.0 404 Not Found');
            exit;
        }
        else{
            return $page[] = mysql_fetch_array($result);
        }
    }
}

?>

そして、私はこのエラーがあります:

警告: mysql_num_rows() は、パラメーター 1 がリソースであると想定します。6 行目の C:\xampp\htdocs\rs-planet\classes\page.php で指定されたブール値です。

警告: mysql_fetch_array() は、パラメーター 1 がリソースであると想定しており、11 行目の C:\xampp\htdocs\rs-planet\classes\page.php で指定されたブール値であり、問​​題は見当たりません...

var_dump @ $result を実行すると、ブール値が得られます。(それが@データベースに設立された場合はtrueを返し、そうでない場合はfalseを返します。)

PS。英語が下手で申し訳ありません。主な言語はオランダ語です。

編集: var_dump(mysql_error) =

string(152) "SQL 構文にエラーがあります。1 行目の '"index' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください"

4

3 に答える 3

2

mysql_queryクエリを実行できない場合(つまり、構文が正しくない場合)はfalseを返します。バックティックで囲んrs-planetでみてください:

$result = mysql_query('SELECT category, title FROM `rs-planet` WHERE url = "'.  mysql_real_escape_string($urlOfPage) . '"');

-テーブル名のが構文を台無しにしていると思います。

編集:また、エラーメッセージを取得するために使用する必要がないため、PDOを使用すると、これらの問題のデバッグがはるかに簡単になります。これmysql_error()は、PDOによってスローされる例外に含まれています。 http://php.net/manual/en/book.pdo.php

2番目の編集:実際には、問題は引用符の欠落である可能性があります。私のコードを修正しましたが、他の答えを参照してください...

于 2012-04-10T21:53:47.490 に答える
1

mysql_queryエラーで戻りfalseます。

WHERE url="URL 文字列の後に終了引用符がありません。

于 2012-04-10T21:55:41.443 に答える
1

mysql_queryエラー時に FALSE を返します。エラーは、クエリで見積もりを閉じていないことです。これを試して:

        $result = mysql_query('SELECT category, title FROM rs-planet WHERE url = "'.  mysql_real_escape_string($urlOfPage).'"');
于 2012-04-10T21:55:53.883 に答える