Vì lỗi đang được tạo ra bởi lệnh gọi đến mysql_real_escape_string()
nó có nghĩa là bạn đã không gọi mysql_connect()
đầu tiên và chuyển một xử lý db hợp lệ đến mysql_real_escape_string
(hoặc cuộc gọi đến mysql_connect()
không thành công).
Trong một số trường hợp, tiện ích mở rộng mysql sẽ cố gắng kết nối tự động bằng cách sử dụng cài đặt mặc định trong php.ini, không chuyển sang my.cnf nếu chúng không khả dụng - rõ ràng là không hợp lệ. Hoặc có thể do cài đặt hợp lệ nhưng mysqld không chạy.
Bạn có tập lệnh nào đang kết nối thành công với cơ sở dữ liệu không?
Bạn có tên người dùng và mật khẩu cho cơ sở dữ liệu không?
Hãy thử:
check_running();
$user=''; // fill in your details
$password=''; // fill in your details
$hosts=array(
'localhost', '127.0.0.1', $_SERVER['HTTP_HOST'], $_SERVER['SERVER_ADDR']
);
foreach ($hosts as $addr) {
try_con($addr, $user, $password);
try_con($addr . ':3306', $user, $password);
}
function try_con($host, $user, $password)
{
$dbh=mysql_connect($host, $user, $password);
if ($dbh) {
print "Connected OK with $host, $user, $password<br />\n";
} else {
print "Failed with $host, $user, $password<br />\n";
}
}
function check_running()
{
// this assumes that you are using Apache on a Unix/Linux box
$chk=`ps -ef | grep httpd | grep -v grep`;
if ($chk) {
print "Checking for mysqld process: " . `ps -ef | grep mysqld | grep -v grep` . "<br />\n";
} else {
print "Cannot check mysqld process<br />\n";
}
}