use*_*847 1 php mysql mysql-real-escape-string nearlyfreespeech
我不认为我的代码是问题,因为它在我的本地服务器上工作(编辑:对不起,如果这是一个错误的地方要求,但我不能自己移动到ServerFault).但是,在远程服务器上,我无法开始mysql_real_escape_string()工作.数据库连接的工作,并调用函数之前,我连接.
当我尝试时echo $_POST['email'];,我得到了正确的数据,但是当我尝试时,echo mysql_real_escape_string($_POST['email']);我什么也得不到.
这是我在留下错误报告时得到的:
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: [2002] No such file or directory (trying to connect via unix://please_see_the_faq) in /f5/mysite/public/email_results.php on line 11
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: No such file or directory in /f5/mysite/public/email_results.php on line 11
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /f5/mysite/public/email_results.php on line 11
Run Code Online (Sandbox Code Playgroud)
PHP配置的某些东西是否可能导致这种情况?如果重要的话,我将与NearlyFreeSpeech一起主持.
这是我的插入代码:
$db->query('INSERT INTO emails VALUES ("sampleemail@gmail.com")');
Run Code Online (Sandbox Code Playgroud)
以下是我连接数据库的方式:
@ $db = new mysqli('mysite.db', 'wizard', '(password)', 'mysite');
Run Code Online (Sandbox Code Playgroud)
你看到第一个错误......那个说"试图连接unix://please_see_the_faq"的错误?这意味着PHP正在尝试连接到您的MySQL服务器(mysql_connect与没有参数的情况相同),但它没有正确的连接参数.它甚至不知道数据库套接字的位置.
如果您没有使用连接到数据库mysql_connect,那么您不应该使用mysql_real_escape_string.如果你这样做,那么它将尝试使用php.ini中的默认参数(你当前看到的结果)自己连接到数据库.看起来你正在使用mysqli,它是一个完全不同的扩展,并且有自己的转义功能 - mysqli_real_escape_string.改用它.
或者,获得线索并学习使用准备好的陈述作为众神的意图.