mehrere mysql-verbindungen auf einer Seite php
Bin ich immer Fehler (nicht wirklich Fehler, einfach nicht richtig funktioniert) und ich versuche herauszufinden, wenn es um meine sql-verbindungen. Ich habe 2 getrennte verbindungen zu zwei völlig verschiedenen Datenbanken.
$dshost = "kjbkb";
$dsdatabase = "kjhk";
$dsusername = "hjgfytdf";
$dspassword = "jhv";
mysql_connect($dshost,$dsusername,$dspassword);
mysql_select_db($dsdatabase) or die( "Unable to select database");
$sql = "SELECT * FROM users WHERE `username` = '".$_POST['paydl']."'";
$cheeseburger = mysql_query($sql);
$res = mysql_fetch_array($cheeseburger);
$autobus_user = $res['id'];
mysql_close(); //close first connection
$db_host = "khgv";
$db_user = "trdstx";
$db_password = "txz";
$db_database = "gfxx";
mysql_connect($db_host, $db_user, $db_password) or die("Unable to connect to host");
mysql_select_db($db_database) or die( "Unable to select database");
$ASDFASDF = "SELECT * FROM `autobus` WHERE `user_id` = '".$autobus_user."' LIMIT 3";
$BobDoleDontNeedThis = mysql_query($ASDFASDF);
$resnumbatwo = mysql_fetch_array($BobDoleDontNeedThis);
mysql_close(); //close 2nd connection
Mache ich das richtig? Warum ist $resnumbatwo
false zurückgeben?
- Nein, du bist nicht so richtig. Sie verwenden eine veraltete Bibliothek. Dein code ist weit offen für SQL-injection. Sie wirklich brauchen, zu suchen
mysqli
als minimum... - vielen Dank, aber ich bin mir auch bewusst, es ist abgeschrieben. Sie haben eine wirkliche Antwort auf meine Frage?
- Ja, ich habe eine Antwort. Sie benötigen, um Ihre MySQL-Ressourcen. Im Grunde müssen Sie ordnen Sie die verbindungen und geben Sie Sie als Ressource Verweise auf die Funktionen.
mysql_fetch_array
auch zurückfalse
wenn es keine Datensätze abgeglichen, die von der Abfrage. Die Frage ist natürlich, warum bist du mit einem alten standard und unsicheren code? - Aus dem Handbuch: «ein array von Zeichenfolgen Zurückgibt, die dem aktuellen Datensatz entspricht oder FALSE falls keine weiteren Zeilen vorhanden sind.»
Du musst angemeldet sein, um einen Kommentar abzugeben.
mysql_fetch_array
zurückfalse
wenn es keine passenden Datensätze aus der Abfrage zurückgegeben. Bitte sehen Sie den folgenden Eintrag aus der API-Referenz docs:Wenn Sie mehrere MySQL-verbindungen bei PHP, die Sie zu liefern haben, ein viertes argument sagen PHP, um tatsächlich neue verbindungen erstellen wie diese (das ist sehr wichtig, wenn Sie mit zwei verbindungen zum gleichen host):
Wenn das vierte argument nicht verwendet wird, und die Parameter sind die gleichen, dann wird PHP wieder den gleichen link und keine neue Verbindung hergestellt werden.
Danach sollten Sie nutzen "mysql_query" mit einem zusätzlichen parameter als die definiert, welche Verbindung zu verwenden:
Die Beschreibung des vierten Parameters aus php.net ist:
"Wenn Sie einen zweiten Anruf zu mysql_connect() mit den gleichen Argumenten, wird keine neue Verbindung aufgebaut, sondern die Verbindungs-Kennung der bereits geöffneten Verbindung zurückgegeben. Die new_link parameter ändert dieses Verhalten und mysql_connect() öffnet immer eine neue Verbindung, sogar dann, wenn mysql_connect() aufgerufen wurde, bevor mit den gleichen Parametern. In SQL safe mode-dieser parameter wird ignoriert."
Sehen Sie mehr an:
http://www.php.net/manual/en/function.mysql-connect.php
Besser sparen jedes Verbindungs-handle in einer Variablen und geben Sie an Korrespondenten
mysql_query()
.Beispiel:
mysql_fetch_array
zurückfalse
wenn es keine passenden Datensätze.Können Sie
Mit php7
Sie können die mysqli_change_user () - Funktion.
Wie in den Beispielen in der php.net Seite: http://php.net/manual/en/mysqli.change-user.php