<分区>
我想根据 URL 从 MySQL 获取内容。
例如,当 URL 为 /index.php?Name=FAQ
时显示整个 FAQ。
我该如何解决这个问题?
<?php
require("configish.php");
mysql_connect("$hosty", "$uname", "$paswd") or die ("Cannot connect");
mysql_select_db("$dbnme") or die ("Cannot select database");
$url = $_GET['Name'];
$sql="SELECT * FROM Pages WHERE Name='".$url."'";
$result=mysql_query($sql) or die(mysql_error());
mysql_close();
while($res = mysql_fetch_array($result)) {
echo $res->Content;
}
?>
哦,在你这么说之前,我知道 mysql_
函数将在 PHP 5.5 及更高版本中弃用,但我目前使用的是 PHP 5.3.10。
如果你想使用对象符号那么你需要调用mysql_fetch_oject()
。
$url = mysql_real_escape_string($_GET['Name']);
$sql="SELECT * FROM Pages WHERE Name='".$url."'";
$result=mysql_query($sql);
if($result) {
while($res = mysql_fetch_object($result)) {
echo $res->Content;
}
} else {
trigger_error(mysql_error()); // this silently writes to the log file
echo 'Page not found';
}
不要在查询后关闭 MySQL 连接,因为您仍然需要连接来检索结果集。
如果您必须使用 mysql_*
库,那么一定要使用 mysql_real_escape_string()
来防止 SQL 注入(inject)。最好切换到PDO或 MySQLi并使用准备好的语句。
此外,or die(mysql_error())
是非常糟糕的做法。您应该通过测试 mysql_query()
的 false
返回值来正确处理错误。