用户 'unset_username'@'localhost' 的访问被拒绝(使用密码:NO)
Access denied for user 'unset_username'@'localhost' (using password: NO)
我有一些 PHP 代码使用 MySQLi 将数据插入 MySQL 数据库。
PHP代码:
function insert_db($lat, $lng, $date, $user){
require('db_info_table.php');
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
return false;
}
$lat = mysql_real_escape_string($lat); // Sanitize data to prevent SQL injection
$lng = mysql_real_escape_string($lng);
$date = mysql_real_escape_string($date);
$user = mysql_real_escape_string($user); // << ERROR
$sql = "INSERT INTO table (lat, lng, date, user)
VALUES ('$lat', '$lng', '$date', '$user')";
if (mysqli_query($conn, $sql)) {
return true;
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
return false;
}
mysqli_close($conn);
}
连接详细信息位于同一目录中的单独文件中,看起来像这样
$servername = "localhost";
$username = "user123";
$password = "pass123";
$dbname = "db123";
我遇到了这些错误,我很确定一个会导致另一个
mysql_real_escape_string(): Access denied for user 'unset_username'@'localhost' (using password: NO)
mysql_real_escape_string(): A link to the server could not be established in
并且两个错误都出现在同一行(查看代码)。
您似乎正在使用 mysqli 库连接到服务器,但随后尝试使用 mysql 库来保护你的字符串。使用 mysqli_real_escape_string() 代替。
它基本上做与 mysql_real_escape_string() 相同的事情,但有两个参数:第一个是连接 link,第二个是需要保护的变量。所以您的代码将如下所示:
$lat = mysqli_real_escape_string($conn, $lat);
$lng = mysqli_real_escape_string($conn, $lng);
$date = mysqli_real_escape_string($conn, $date);
$user = mysqli_real_escape_string($conn, $user);
我有一些 PHP 代码使用 MySQLi 将数据插入 MySQL 数据库。 PHP代码:
function insert_db($lat, $lng, $date, $user){
require('db_info_table.php');
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
return false;
}
$lat = mysql_real_escape_string($lat); // Sanitize data to prevent SQL injection
$lng = mysql_real_escape_string($lng);
$date = mysql_real_escape_string($date);
$user = mysql_real_escape_string($user); // << ERROR
$sql = "INSERT INTO table (lat, lng, date, user)
VALUES ('$lat', '$lng', '$date', '$user')";
if (mysqli_query($conn, $sql)) {
return true;
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
return false;
}
mysqli_close($conn);
}
连接详细信息位于同一目录中的单独文件中,看起来像这样
$servername = "localhost";
$username = "user123";
$password = "pass123";
$dbname = "db123";
我遇到了这些错误,我很确定一个会导致另一个
mysql_real_escape_string(): Access denied for user 'unset_username'@'localhost' (using password: NO)
mysql_real_escape_string(): A link to the server could not be established in
并且两个错误都出现在同一行(查看代码)。
您似乎正在使用 mysqli 库连接到服务器,但随后尝试使用 mysql 库来保护你的字符串。使用 mysqli_real_escape_string() 代替。
它基本上做与 mysql_real_escape_string() 相同的事情,但有两个参数:第一个是连接 link,第二个是需要保护的变量。所以您的代码将如下所示:
$lat = mysqli_real_escape_string($conn, $lat);
$lng = mysqli_real_escape_string($conn, $lng);
$date = mysqli_real_escape_string($conn, $date);
$user = mysqli_real_escape_string($conn, $user);