PHP $_GET ['id' ] 和安全

标签 php mysql

<分区>

我的网页上有这样的链接:http://test.com/index.php?function=news&id=88

因此,每当我在 88 之后放置一个 ' 时,我都会收到以下错误:警告:mysql_fetch_row() 期望参数 1 为资源, bool 值在...第 588 行中给出

所以我阅读了有关 mysql_real_escape_string() 的信息,但我得到的 ID 没有发布,而且我不知道如何防止出现此错误。

function news()
{
$query = mysql_query("SELECT * FROM news WHERE id=".$_GET['id']."");
while($news = mysql_fetch_row($query)) 
{
    ...
}
}

最佳答案

最简单的方法是将 id 转换为整数,如果 id 是一个整数:

$id = (int)$_GET['id'];

但强烈建议使用 pdo 或 mysqli 准备语句:

http://php.net/manual/en/book.pdo.php

http://php.net/manual/en/book.mysqli.php

关于PHP $_GET ['id' ] 和安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17553568/

相关文章:

PHP 数据库搜索表单 SQL 问题

mysql - 在大型 mysql 数据库中查找长字符串

php mysql 搜索查询

php - 计算每天的 MySQL 条目数,包括没有任何条目的天数(日期范围)

php - 在启用 opcache 之前找不到 Laravel PHP5.6 类

php - paypal API doExpressCheckoutPayment 状态 Pending

php - MySQL PHP jQuery - 行不更新?

Mysql ON DUPLICATE KEY UPDATE inside Triger 语法错误

php - 排序在新的 mongodb PECL 扩展中是如何工作的?

php - UNIX 日期操作