0

私は得ています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か、それとも間違っていますか?

4

3 に答える 3

3

はい、それを行うには、開いているmysql接続が必要です。

このエラーが発生しないように、スクリプトの先頭にmysql_connect()を配置することをお勧めします。(もちろん、データベースに誤って接続した場合でも発生する可能性があります)

于 2012-05-10T14:14:44.780 に答える
1

はい、必須です。

ノート:

mysql_real_escape_string()を使用する前にMySQL接続が必要です。そうでない場合、レベルE_WARNINGのエラーが生成され、FALSEが返されます。link_identifierが定義されていない場合は、最後のMySQL接続が使用されます。

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

于 2012-05-10T14:18:02.453 に答える
1

mysql接続を確立できない場合は、次を使用できます。

mysql_escape_string

ただし、PHP 5.3.0では非推奨になっています!

可能であれば常に使用しmysql_real_escape_stringてください!

于 2012-05-10T14:19:59.507 に答える