für ein Projekt Ich muss eine Mysql-Verbindung zu öffnen, schließen Sie es und lassen Sie alte Legacy-Code danach ausgeführt werden. Der Legacy-Code hat eine eigene Verbindung und ruft einfach mysql_query ($ sql) ohne den resource-Parameter auf.Umgang mit zwei MySQL-Verbindung in PHP
Wie kann ich damit umgehen? Kann ich eine Mysql-Verbindung als globale Verbindung festlegen? Muss ich die mysql_connect() -Anweisung erneut ausführen? Der Legacy-Code kann gerade nicht refaktoriert werden.
Hier eine kurze Demo
<?php
function show()
{
$a = mysql_fetch_array(mysql_query('select database()'));
echo $a[0] . "<br>";
}
$conn = mysql_connect('localhost', 'root', '', TRUE);
mysql_select_db('dredd');
show();
mysql_connect('localhost', 'root', '', TRUE);
mysql_select_db('afup');
show();
mysql_close();
$a = mysql_fetch_array(mysql_query('select database()', $conn));
echo $a[0] . "<br>";
show();
Die erste Auswahl ist in Ordnung, die zweite zwei, die dritte in Ordnung ist, weil es die Ressource, aber die vierte brach ("Zugriff verweigert für Benutzer‚ODBC‘@‘ localhost '(mit Passwort: NEIN) ").
Grüße, Cédric
Meine DB-Verbindung ist für ein Fehler aufholen-System, so dass der Legacy-Code unterbrochen ist, mein Code ausgeführt wird, und der Legacy-Code fortgesetzt. Aber deine Idee ist sehr gut, danke! Ich versuche es so schnell wie möglich. –