Bräuchte Hilfe bei der Umstellung von mysql_connect auf php7
-
- Beiträge: 1973
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Bräuchte Hilfe bei der Umstellung von mysql_connect auf php7
Hallo php-Programmierer
Das aktuelle debian stretch beinhaltet php7 und nun laufen meine Datenbankbefehle in den php-Programmen nicht mehr.
Das dürfte daran liegen dass die von mir verwendeten Befehle nicht mehr enthalten sind z.B. mysql_connect
Da bräuchte ich Hilfe bei der Umstellung, steh hier komplett auf dem Schlauch
Relevante Stellen sind fett markiert
$dbserver = "localhost";
$dbuser = "manfred";
$dbpassword = "manfred";
$dbname = "adr";
lese_prio_datei();
$utf8_on = 1;
print "utf8_on=$utf8_on<BR>";
print "<BR>";
$debug=1;
if ($debug==1)
{
print "dbserver=$dbserver <BR>";
print "dbname=$dbname <BR>";
}
mysql_connect($dbserver, $dbuser, $dbpassword) or die("Keine Verbindung zu Datenbank $dbname");
//-------------------------------------------------------------------------------------------------------------------- wie lautet entsprechender mysqli_connect?
mysql_select_db($dbname);
if ($utf8_on == 1) mysql_query("SET NAMES 'utf8'"); [/b]
print "<FONT COLOR = 'BLACK'>"; ////Farbe setzen
print "<FONT SIZE = '1'>"; ////Größe setzen
$debug=1;
$sqlstatement = "SELECT * FROM adr WHERE prio <= " . $prio . " ORDER by nachname, vorname;";
$debug=0;
if ($debug==1) echo "sqlstatement = ", $sqlstatement, "<BR>";
$result=mysql_query($sqlstatement);
//--------------------------------------------------------------------------------------------------------------------------müsste man hier ändern?
while ($dataset = mysql_fetch_array($result)) {
echo $dataset['firma'], " | ", $dataset['nachname'], " ", $dataset['vorname'], " ", $dataset['telefon'], " | ", $dataset['telefon_2']," ",
]
Das aktuelle debian stretch beinhaltet php7 und nun laufen meine Datenbankbefehle in den php-Programmen nicht mehr.
Das dürfte daran liegen dass die von mir verwendeten Befehle nicht mehr enthalten sind z.B. mysql_connect
Da bräuchte ich Hilfe bei der Umstellung, steh hier komplett auf dem Schlauch
Relevante Stellen sind fett markiert
$dbserver = "localhost";
$dbuser = "manfred";
$dbpassword = "manfred";
$dbname = "adr";
lese_prio_datei();
$utf8_on = 1;
print "utf8_on=$utf8_on<BR>";
print "<BR>";
$debug=1;
if ($debug==1)
{
print "dbserver=$dbserver <BR>";
print "dbname=$dbname <BR>";
}
mysql_connect($dbserver, $dbuser, $dbpassword) or die("Keine Verbindung zu Datenbank $dbname");
//-------------------------------------------------------------------------------------------------------------------- wie lautet entsprechender mysqli_connect?
mysql_select_db($dbname);
if ($utf8_on == 1) mysql_query("SET NAMES 'utf8'"); [/b]
print "<FONT COLOR = 'BLACK'>"; ////Farbe setzen
print "<FONT SIZE = '1'>"; ////Größe setzen
$debug=1;
$sqlstatement = "SELECT * FROM adr WHERE prio <= " . $prio . " ORDER by nachname, vorname;";
$debug=0;
if ($debug==1) echo "sqlstatement = ", $sqlstatement, "<BR>";
$result=mysql_query($sqlstatement);
//--------------------------------------------------------------------------------------------------------------------------müsste man hier ändern?
while ($dataset = mysql_fetch_array($result)) {
echo $dataset['firma'], " | ", $dataset['nachname'], " ", $dataset['vorname'], " ", $dataset['telefon'], " | ", $dataset['telefon_2']," ",
]
Es gibt viele Foren und eine Welt ausserhalb
Re: Bräuchte Hilfe bei der Umstellung von mysql_connect auf php7
Das ist richtig, die musst du entweder durch mysqli oder PDO-Befehle ersetzen.mampfi hat geschrieben:07.11.2017 18:47:02Das dürfte daran liegen dass die von mir verwendeten Befehle nicht mehr enthalten sind z.B. mysql_connect
Hier ist mysqli ganz gut erklärt: http://www.peterkropff.de/site/php/mysqli.htm
...und auch PDO: http://www.peterkropff.de/site/php/pdo.htm
Re: Bräuchte Hilfe bei der Umstellung von mysql_connect auf php7
Es gibt auch automatische Code-Umbau-Scripte (such mal nach ``php7 mysql mysqli convert'' o.ae.), ich hab's aber lieber von Hand gemacht. Es gibt ja auch noch ein paar andere inkompatible Aenderungen in PHP7, z.B. bei foreach.
Hab mir damals den Migration-Guide http://php.net/manual/en/migration70.php vorgenommen (den ich ziemlich gut finde) und einige Blogposts/Tutorials zum Wechsel auf PHP7, dann bin ich den Code systematisch durchgegangen. Um die relevanten Stellen zu finden und rur Kontrolle, habe ich die Tools php7cc, php7mar und phpcompatibility genutzt ... die waren eine gute Unterstuetzung.
Hab mir damals den Migration-Guide http://php.net/manual/en/migration70.php vorgenommen (den ich ziemlich gut finde) und einige Blogposts/Tutorials zum Wechsel auf PHP7, dann bin ich den Code systematisch durchgegangen. Um die relevanten Stellen zu finden und rur Kontrolle, habe ich die Tools php7cc, php7mar und phpcompatibility genutzt ... die waren eine gute Unterstuetzung.
Use ed once in a while!
-
- Beiträge: 1973
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Re: Bräuchte Hilfe bei der Umstellung von mysql_connect auf php7
Leider bin ich mit meinen alleinigen Versuchen nicht erfolgreich gewesen, statt jeden falschen Befehl hier zu posten, hab ich hier um detaillierte Hilfe gebeten.
Ich finde mich in den Anleitungen nicht zurecht.
War auf der Suche nach einer Art Befehlsübersetzungstabelle in der Art von
Alt: mysql_connect(
Neu: mysqli_connect(
Vielleicht sollte ich die php-Arbeit von damals einfach in die Tonne treten.
Bin mir bewusst, dass ich die Hilfeanforderung wohl überspannt hab.
Wenn ich ein einfacheres Beispiel posten würde, würde meiner Bitte um die Einzelhilfe dann entsprochen?
Ich finde mich in den Anleitungen nicht zurecht.
War auf der Suche nach einer Art Befehlsübersetzungstabelle in der Art von
Alt: mysql_connect(
Neu: mysqli_connect(
Vielleicht sollte ich die php-Arbeit von damals einfach in die Tonne treten.
Bin mir bewusst, dass ich die Hilfeanforderung wohl überspannt hab.
Wenn ich ein einfacheres Beispiel posten würde, würde meiner Bitte um die Einzelhilfe dann entsprochen?
Es gibt viele Foren und eine Welt ausserhalb
Re: Bräuchte Hilfe bei der Umstellung von mysql_connect auf php7
Schau mal hier: http://www.peterkropff.de/site/php/mysq ... dlagen.htm Punkt 1 und 2.mampfi hat geschrieben:07.11.2017 22:04:58War auf der Suche nach einer Art Befehlsübersetzungstabelle in der Art von
Alt: mysql_connect(
Neu: mysqli_connect(
Code: Alles auswählen
mysql_connect($dbserver, $dbuser, $dbpassword) or die("Keine Verbindung zu Datenbank $dbname");
//-------------------------------------------------------------------------------------------------------------------- wie lautet entsprechender mysqli_connect?
-
- Beiträge: 1973
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Re: Bräuchte Hilfe bei der Umstellung von mysql_connect auf php7
gerade merk ich dass mein gepostetes Beispiel "telefon_liste.php" nicht das einfachste ist sondern meine "vokabeln_liste.php"
Gibt auf der Seite ein Suchfeld?
Suche gerade danach, ob sich mysql_fetch_array auch geändert hat
Gibt auf der Seite ein Suchfeld?
Suche gerade danach, ob sich mysql_fetch_array auch geändert hat
Zuletzt geändert von mampfi am 07.11.2017 23:33:41, insgesamt 1-mal geändert.
Es gibt viele Foren und eine Welt ausserhalb
-
- Beiträge: 1973
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Re: Bräuchte Hilfe bei der Umstellung von mysql_connect auf php7
Danke, war auf einer falschen Abzweigung
Wenn dann würde ich mich für mysqli entscheiden, da das noch ähnlicher ist und PDO nicht installiert ist.
Wenn ichs richtig gelesen hab, dann übernehmen die mysqli-Funktionen die selben Parameter in der selben Reihenfolge wie die veralteten Funktionen.
(Sollte Schlussmachen für heute, hab zu später Stunde noch mehr Hirnsausen)
Wenn dann würde ich mich für mysqli entscheiden, da das noch ähnlicher ist und PDO nicht installiert ist.
Wenn ichs richtig gelesen hab, dann übernehmen die mysqli-Funktionen die selben Parameter in der selben Reihenfolge wie die veralteten Funktionen.
(Sollte Schlussmachen für heute, hab zu später Stunde noch mehr Hirnsausen)
Es gibt viele Foren und eine Welt ausserhalb
Re: Bräuchte Hilfe bei der Umstellung von mysql_connect auf php7
Wenn du dir hier nochmal diesen Link anschaust, da bekommst du auf der rechten Seite alle alten mysql*-Befehle aufgelistet.
Da würde ich an deiner Stelle alle Befehle die du in deinem Script hast, einen nach dem anderen durchgehen. Oben bekommst du immer eine Warnung mit den entsprechenden Alternativen angezeigt. Wenn du auf die Alternative (mysqli) klickst findest du weiter unten ein Beispiel für prozeduralen Stil. Das kannst du dann mit deinem Code abgleichen und ändern.
Da würde ich an deiner Stelle alle Befehle die du in deinem Script hast, einen nach dem anderen durchgehen. Oben bekommst du immer eine Warnung mit den entsprechenden Alternativen angezeigt. Wenn du auf die Alternative (mysqli) klickst findest du weiter unten ein Beispiel für prozeduralen Stil. Das kannst du dann mit deinem Code abgleichen und ändern.
Code: Alles auswählen
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($link, $query);
/* numeric array */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);
/* associative array */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
/* associative and numeric array */
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);
/* free result set */
mysqli_free_result($result);
/* close connection */
mysqli_close($link);
Re: Bräuchte Hilfe bei der Umstellung von mysql_connect auf php7
Warum nimmst du dann kein automatisches Konvertierthelferlein (wie von mir oben erwaehnt)? Das konvertiert dir deinen Code (mach es auf einer Code-Kopie, dann kannst du die Veraenderungen anschliessend per diff anschauen). Da gabe es z.B.: https://github.com/philip/MySQLConverterTool
Oder du verwendest https://github.com/dshafik/php7-mysql-shim, welches dir Kompatibilitaetswrapper bereitstellt, so dass du deinen Code gar nicht veraendern musst und trotzdem im Hintergrund mysqli verwendet wird.
Use ed once in a while!
-
- Beiträge: 1973
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Re: Bräuchte Hilfe bei der Umstellung von mysql_connect auf php7
Könnte sein, dass es um diesen Thread eine Weile ruhig wird, da ich ein paar andere Fehlersuchen vorziehe
Es gibt viele Foren und eine Welt ausserhalb
Re: Bräuchte Hilfe bei der Umstellung von mysql_connect auf php7
Musst eigentlich nicht. In deinem "einfachen" Fall musst du mysql_connect durch mysqli_connect ersetzen.mampfi hat geschrieben:07.11.2017 22:04:58Vielleicht sollte ich die php-Arbeit von damals einfach in die Tonne treten.
Einfaches Beispiel:
Code: Alles auswählen
$con = mysqli_connect(...);
$sql = "SELECT * FROM tabelle";
mysqli_query($con, $sql);
mysql_query($sql);
mysqli_query($con,$sql);
Konverter würde ich nur empfehlen wenn man weiß, was man genau macht. Oder man hat Glück und der Konverter bastelt etwas brauchbares zurecht.