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 我得到一个布尔值。(如果它是在 @ db 成立的,它给出了 true,如果不是,它给出了 false。)

PS。对不起我的英语不好,我的主要语言是荷兰语。

编辑:var_dump(mysql_error) =

string(152) "您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '"index' 附近使用正确的语法"

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

第二次编辑:实际上问题可能是缺少报价。修复了我的代码,但请参阅其他答案...

于 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 回答