MySQLi - Eigenschaften
1. Obacht
Eigenschaften gibt es bei MySQLi nur, wenn man objektorientiert damit arbeitet! Beim prozeduralen Stil dagegen handelt es sich um Funktionen! Allerdings gibt es davon nicht so viele und die meisten davon sind nicht besonders interessant. Darum stelle ich euch nur mal die zwei Wichtigsten vor.
2. affected_rows
Hier muss man sehr genau unterscheiden. Denn diese Eigenschaft gibt es in der MySQLi- und(!) der MySQLi_STMT-Klasse. Daher ist ihre
Verwendung auch unterschiedlich. Das Prinzip von mysql_affected_rows
ist aber dasselbe.
MySQLi-Klasse
// Objektorientiert
$mysqli = new mysqli('host', 'user', 'pw', 'db');
$mysqli -> query('UPDATE bla SET blubb = 1 WHERE id > 20');
echo $mysqli -> affected_rows;
// Prozedural
$mysqli = mysqli_connect('host', 'user', 'pw', 'db');
mysqli_query($mysqli,'UPDATE bla SET blubb = 1 WHERE id > 20');
echo mysqli_affected_rows($mysqli);
MySQLi_STMT-Klasse
// Objektorientiert
$mysqli = mysqli_connect('localhost', 'root', '', 'banken');
// Prepared Statement
...
echo $stmt -> affected_rows;
// Prozedural
$mysqli = mysqli_connect('host', 'user', 'pw', 'db');
// Prepared Statement
...
echo mysqli_stmt_affected_rows($stmt)
3. insert_id
Gibt den Wert des Primary Keys zuück nach einer INSERT
-Anweisung. Das entspricht dem mysql_insert_id
der
MySQL-Erweiterung.
// Objektorientiert
$mysqli = mysqli_connect('localhost', 'root', '', 'banken');
$query = 'INSERT INTO ...';
$mysqli -> query($query);
echo $mysqli -> insert_id;
// Prozedural
$mysqli = mysqli_connect('host', 'user', 'pw', 'db');
$query = 'INSERT INTO ...';
mysqli_query($stmt,$query);
echo mysqli_insert_id($stmt);
4. Da fehlen noch welche!
Ja, und zwar die zur Fehlerbehandlung. Da das aber ein eigenes Kapitel ist, habe ich die hier unterschlagen.
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt