为什么PHP试图访问我的localhost数据库


Why is PHP trying to access my localhost database?

我的代码点火器应用程序中有一个奇怪的错误。当我调用mysql_real_sescape_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_eescape_string会触发对本地主机数据库的访问?这个函数不是只是格式化一个字符串吗?此外,我甚至没有使用本地主机数据库。

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

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

mysql_real_escape_string的行为部分取决于某些数据库服务器设置,包括字符集。如果您想要通用的,请使用addslashes,但请注意,对于某些模糊的多字节字符集,它会给出不正确的结果。

这个错误说明了一切。

它说,无论你提供了什么凭据和服务器名,它都无法连接到你的mysql服务器!

在使用此功能之前,您需要先连接到数据库!它对MySql服务器有一定的依赖性!

此函数有第二个参数link_identifier。这就是文件所说的:

MySQL连接。如果未指定链接标识符,则假定为mysql_connect()打开的最后一个链接。如果找不到这样的链接,它将尝试创建一个链接,就像调用mysql_connect()时没有参数一样。如果没有找到或建立连接,则会生成E_WARNING级别的错误