Poiché l'errore viene generato dalla chiamata a mysql_real_escape_string() implica piuttosto che non è stato chiamato prima mysql_connect() e passato un handle db valido a mysql_real_escape_string (o la chiamata a mysql_connect() non è riuscita).
In alcune circostanze, l'estensione mysql tenterà di connettersi automaticamente utilizzando le impostazioni predefinite in php.ini, non riuscendo a my.cnf se queste non sono disponibili - che ovviamente non sono valide. Oppure potrebbe essere che le impostazioni siano valide ma il mysqld non è in esecuzione.
Hai degli script che si collegano al database con successo?
Hai un nome utente e una password per il database?
Prova:
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";
}
}
HTH
C.
sembra una bella risposta, non è ancora stata applicata. grazie per l'aiuto – diEcho
Cosa succede se si ottiene questo errore quando si eseguono gli strumenti da riga di comando come 'mysqlshow',' mysql'? – NoBugs