首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么mysql_real_escape_string返回布尔值?

为什么mysql_real_escape_string返回布尔值?
EN

Stack Overflow用户
提问于 2013-11-10 11:00:58
回答 2查看 4.5K关注 0票数 2

我编写了一个PHP脚本来处理用户登录。为了防止SQL注入攻击,我使用了'mysql_real_escape_string‘函数。直到今天一切都很顺利。我跟踪了代码并发现了问题;这一行使用了'mysql_real_escape_string‘。我将其改为基本命令如下:

代码语言:javascript
运行
复制
$username=mysql_real_escape_string('sample');
var_dump($username)

产出如下:

代码语言:javascript
运行
复制
bool(false)

在我的本地web服务器(WAMP)上一切都很好,但是在远程主机上出现了问题!怎么啦?(主机PHP为5.4.12)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-10 11:03:06

根据http://php.net/manual/en/function.mysql-real-escape-string.php

返回转义字符串,或错误时返回FALSE。

它在错误时返回假;

将以下行添加到文件的开头:

代码语言:javascript
运行
复制
error_reporting(E_ALL);

这样您就可以查看错误。

在根据mysql_real_escape_string('sample')中的第一个错误使用函数http://us1.php.net/mysql-real-escape-string Thats之前,您可能忘记了建立mysql连接。

在使用MySQL ()之前需要一个mysql_real_escape_string连接,否则会生成级别E_WARNING的错误,并返回FALSE。

您应该知道有更好的方法来防止sql注入,您可以在这里查看:如何防止PHP中的SQL注入?

票数 10
EN

Stack Overflow用户

发布于 2013-11-10 11:03:28

返回转义字符串,或错误时返回FALSE。

文档

我不能确切地告诉你错误是什么,但几乎可以肯定的是:

注: 在使用MySQL之前需要一个mysql_real_escape_string()连接,否则会生成级别E_WARNING的错误,并返回FALSE。如果未定义link_identifier,则使用最后一个MySQL连接。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19888928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档