Umstellung auf MySQLi

edit | delete

Autor: Varsamis Karamanidis (Macky), Ralf v.d.Mark

eingetragen: Dienstag, 11. März 2014 um 17:02 Uhr (11/2014 Kalenderwoche)

geändert: Mittwoch, 15. November 2023 um 08:45 Uhr (46/2023 Kalenderwoche)

Keywords: Deprecated Veraltet MySQLi

Kategorien: DB: MySQL, PHP, DB: MariaDB,

Text:

Was zu beachten ist bei einer Umstellung von mysql auf mysqli?


Vorher: $link = mysqlconnect($host, $user, $password);
mysql
select_db($database, $link);


Jetzt: $link = mysqliconnect($host, $user, $password, $database);
oder optional: mysqli
connect($host, $user, $password, $database, $port, $socket);
http://de2.php.net/manual/de/function.mysqli-connect.php


Vorher: mysqlquery($query, $link);
Jetzt: mysqli
query($link, $query);
http://de2.php.net/manual/de/mysqli.query.php


Vorher: mysqlinsertid();
Jetzt: mysqliinsertid($link);
http://de2.php.net/manual/de/mysqli.insert-id.php


Vorher: mysqlaffectedrows();
Jetzt: mysqliaffectedrows($link);
http://de2.php.net/manual/de/mysqli.affected-rows.php


Vorher: mysqlerror();
Jetzt: mysqli
error($link);
http://de2.php.net/manual/de/mysqli.error.php
Übrigens, wie wäre es mit der Error-Rückgabe mysqlierrorlist ($link)?
http://de2.php.net/manual/de/mysqli.error-list.php


Vorher: mysqlerrno();
Jetzt: mysqli
errno($link);
http://de2.php.net/manual/de/mysqli.errno.php


Vorher: mysqlnumrows($result) und mysqlnumrows($result);
Jetzt: mysqli
numrows($result);
http://de2.php.net/manual/de/mysqli-result.num-rows.php
Wie wäre es mit mysqli
info($link)?
http://de2.php.net/manual/de/mysqli.info.php
Ergebnis: Records: 150 | Duplicates: 0 | Warnings: 0


Vorher: mysqlrealescapestring($stringtoescape); //-> linkidentifier resource[optional]
Jetzt: mysqlirealescapestring($link, $stringto_escape);


Vorher: mysqlclose();
Jetzt: mysqli
close($link);
http://de2.php.net/manual/de/mysqli.close.php


Außerdem müssen noch alle folgenden Aufrufe umgesetzt werden:
mysqlfetch* => mysqlifetch*
...

Quellcode:  

//Verbindung:
$link = mysqli_connect(HOST, USER, PASSW, DB) 
	or die('MySQL-Error('.mysqli_errno($link).'): '
		   .mysqli_error($link));

//Abfrage:
$query = 'SELECT a.feldname 
          FROM   mytable AS a
          WHERE  a.id = 1 ;';

//Ausführen der Query:
$result = mysqli_query($link, $query 
	or die('MySQL-Error im Select ('.$query.') ..'
		   .mysqli_error($link)));

//Anzeigen des Resultats:
while($row = mysqli_fetch_assoc($result)) {
  echo $row['feldname'].'<br>';
}//ENDE: while(...)