我正在Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'username'@'localhost' (using password: NO)
这是我的代码..
<?php
include 'config.php';
$email = mysql_real_escape_string($_GET['email']);
$validation = filter_var($email, FILTER_VALIDATE_EMAIL);
if ( $validation ) {
// Make a MySQL Connection
mysql_connect($Host,$Username,$Password) or die(mysql_error());
mysql_select_db($Database) or die(mysql_error());
// Insert rows
mysql_query("INSERT INTO formusers
(formemail) VALUES('$email') ")
or die(mysql_error());
}
?>
如果我移动线以建立数据库连接,它确实有效。是否有必要在使用mysql_real_escape_string
之前建立数据库连接,或者我只是做错了?
答案 0 :(得分:3)
是的,你需要一个开放的mysql连接才能做到这一点。
我建议你将mysql_connect()放在脚本之上,以确保永远不会发生此错误。 (当然,如果你错误地连接到数据库,它仍然会发生)
答案 1 :(得分:1)
是的,这是必需的。
注意:
在使用mysql_real_escape_string()之前需要MySQL连接,否则E_WARNING级别的错误是 生成,返回FALSE。如果未定义link_identifier, 使用最后一个MySQL连接。
http://php.net/manual/en/function.mysql-real-escape-string.php
答案 2 :(得分:1)