我有以下 PHP 来访问我正在构建的简单论坛的数据库:
$sql = "
SELECT
categories.cat_id,
categories.cat_name,
categories.cat_description
FROM
categories
WHERE
categories.cat_id = '" . mysql_real_escape_string($_GET['id']) ."'
";
$result = mysql_query($sql);
//If data is unable to be served...
if (!$result) {
echo 'Category could not be displayed! Please try again later' . mysql_error();
} else {
if(mysql_num_rows($result) == 0) {
//This is the error code being displayed
echo 'Category does not exist!';
}
}
这是数据库这一部分的代码:
CREATE TABLE categories(
cat_id INT(8) NOT NULL AUTO_INCREMENT,
cat_name VARCHAR(255) NOT NULL,
cat_description VARCHAR(255) NOT NULL,
UNIQUE INDEX
cat_name_unique (cat_name),
PRIMARY KEY(cat_id)
)
TYPE=INNODB;
问题:由于某种原因,查询似乎没有正确地从数据库中提取行数据,我不知道为什么它不工作。也就是说,我对 MySQL 和 SQL 也很陌生。有人对发生的事情有任何想法吗?简单地说,为什么 MySQL 查询没有访问 PHP 代码的数据?
任何帮助都感激不尽!
谢谢!
更新:
将 SQL 查询更改为:
categories.cat_id = " . mysql_real_escape_string($_GET['id']);
解决了原来的问题,结果又出现了另一个问题。
我现在收到错误代码:
echo 'Category could not be displayed! Please try again later' . mysql_error();
使用 SQL 输出:
You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near '' at line 8
我之前实际上遇到过这个问题,但是在我尝试修复它时,我发现了我发布的原始代码。我在我的 PHP 文件中都有类似的代码有效,这让我相信这是我在数据库代码中犯的错误。