我的Code Igniter应用程序中有一个奇怪的错误。当我调用mysql_real_escape_string时,Code Igniter或PHP会发出此错误。
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
<p>Message: mysql_real_escape_string() [<a href='function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]: Can't connect to local MySQL server through socket '/No-MySQL-hostname-was-specified' (2)</p>
<p>Filename: helpers/formval_helper.php</p>
<p>Line Number: 13</p>
为什么简单地调用mysql_real_escape_string会触发对我的localhost数据库的访问?这个函数不只是格式化一个字符串吗?另外,我甚至没有使用我的localhost数据库。
答案 0 :(得分:3)
http://php.net/manual/en/function.mysql-real-escape-string.php
在使用mysql_real_escape_string()之前需要MySQL连接,否则会生成级别为E_WARNING的错误,并返回FALSE。如果未定义link_identifier,则使用最后一个MySQL连接。
答案 1 :(得分:1)
mysql_real_escape_string
的行为部分取决于某些数据库服务器设置,包括字符集。如果你想要通用的东西,请使用addslashes
,但请注意,它会为一些模糊的多字节字符集提供不正确的结果。
答案 2 :(得分:1)
错误说明了一切。
它表示无法使用您提供的任何凭据和服务器名称连接到您的mysql服务器!
在使用此功能之前,您需要先连接到数据库!它对MySql Server有一定的依赖性!
答案 3 :(得分:1)
此函数具有第二个参数link_identifier。 这就是文档所说的:
MySQL连接。如果未指定链接标识符,则假定mysql_connect()打开的最后一个链接。如果没有找到这样的链接,它将尝试创建一个,就好像没有参数调用mysql_connect()一样。如果未找到或建立连接,则会生成E_WARNING级别错误