gpt4 book ai didi

php - 用于 SEO slug 的 PHP 中的 MySQL 错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:38:34 25 4
gpt4 key购买 nike

我有一个名为 details.php 的页面。这是它的代码:

<?
$id = $_GET['id'];
?>

<?
$q = mysql_query("SELECT * FROM `db` WHERE id = $id ");
while($db = mysql_fetch_array($q)) {
?>

<p><?=$db['title']?> <br /> <?=$db['desc']?></p>
<? } ?>

因此,当我在浏览器中打开/details.php?id=1 时,它会起作用。段落标签显示了 id 1 的信息。所以...

如果我将 id 替换为 title,它将如下所示:

<?
$title = $_GET['title'];
?>

<?
$q = mysql_query("SELECT * FROM `db` WHERE title = $title ");
while($db = mysql_fetch_array($q)) {
?>

<p><?=$db['title']?> <br /> <?=$db['desc']?></p>
<? } ?>

如果我在浏览器中键入/details.php?title=M(M 是 mysql 中的现有列),它不起作用。我在段落中收到此错误:警告:mysql_fetch_array() 期望参数 1 为资源,第 51 行 C:\xampp\htdocs\mario\game.php 中给出的 bool 值

我哪里错了?

最佳答案

尝试

$q = mysql_query("SELECT * FROM `db` WHERE title = '" . $title . "'");

$title 是一个字符串,所以在查询中你必须用单引号将它包起来

PHP 5.5.0 起,此 (mysql_*) 扩展已弃用,并将在未来删除。相反,应该使用 MySQLiPDO_MySQL 扩展。切换到 PreparedStatements 可以更好地抵御 SQL 注入(inject)攻击!

关于php - 用于 SEO slug 的 PHP 中的 MySQL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22385142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com