Bei der Verwendung der MySQLI -Erweiterung von PHP für Datenbankvorgänge ist die Funktion mySQLI_STMT :: attr_get eine relativ unpopuläre, aber sehr nützliche Funktion. Es kann verwendet werden, um den Attributwert eines Vorverarbeitungsanweisungsobjekts zu erhalten, wodurch wir feststellen, ob eine Eigenschaftskonstante vom aktuellen MySQL -Server und Client unterstützt wird. In diesem Artikel wird detailliert vorgestellt, wie die Funktion mySQLI_stmt :: attr_get verwendet wird, um die Unterstützung von Attributkonstanten zu beurteilen und Beispielcode zu geben.
Mysqli_stmt :: attr_get ist eine Methode der MySQLi_stmt -Klasse in der mySQLi-objektorientierten Schnittstelle, mit der die Eigenschaften einer Vorverarbeitungsanweisung erhalten werden. Es akzeptiert eine Attributkonstante als Parameter und gibt den aktuellen Wert des Attributs zurück. Wenn die Eigenschaft nicht unterstützt oder ungültig ist, wird in der Regel False zurückgegeben.
Gemeinsame Attributkonstanten umfassen:
Mysqli_stmt_attr_update_max_length
Mysqli_stmt_attr_cursor_type
Mysqli_stmt_attr_prefetch_rows
MySQLI_STMT_ATTR_CURSOR_NAME
Durch das Erhalten der Werte dieser Eigenschaften können Sie feststellen, ob die aktuelle Umgebung diese Eigenschaften unterstützt.
Aufgrund verschiedener Versionen von MySQL und der Implementierungsunterschiede zwischen kundenorientierten Unterschieden werden einige Eigenschaften möglicherweise nicht in einer bestimmten Umgebung unterstützt. Wenn der Code diese Eigenschaften direkt festgelegt oder abruft, kann dies zu Fehlern oder Ausnahmen führen. Durch die Beurteilung, ob das Attribut unterstützt wird, können Entwickler Programmunfälle vermeiden und die Robustheit und Kompatibilität der Programme verbessern.
Die Hauptidee besteht darin, zu versuchen, MySQLI_stmt :: attr_get aufzurufen, um den Wert eines bestimmten Attributs zu erhalten. Wenn der Rückgabewert falsch ist, wird die Eigenschaft nicht unterstützt. Andernfalls wird dieses Attribut unterstützt.
Der Beispielcode lautet wie folgt:
<?php
// Stellen Sie eine Verbindung zur Datenbank her
$mysqli = new mysqli('m66.net', 'username', 'password', 'database');
if ($mysqli->connect_errno) {
die("Verbindung ist fehlgeschlagen: " . $mysqli->connect_error);
}
// Bereiten Sie eine Vorverarbeitungserklärung vor
$stmt = $mysqli->prepare("SELECT ?");
// Attributkonstanten, die erkannt werden müssen
$attributes = [
MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH,
MYSQLI_STMT_ATTR_CURSOR_TYPE,
MYSQLI_STMT_ATTR_PREFETCH_ROWS,
MYSQLI_STMT_ATTR_CURSOR_NAME,
];
// Traversaleigenschaften,Status der Prüfung der Prüfung
foreach ($attributes as $attr) {
$value = $stmt->attr_get($attr);
if ($value === false) {
echo "Attributkonstanten {$attr} Nicht unterstützt oder ungültig。\n";
} else {
echo "Attributkonstanten {$attr} Unterstützung,Der aktuelle Wert ist: {$value}\n";
}
}
// Aussagen und Verbindungen schließen
$stmt->close();
$mysqli->close();
?>
Stellen Sie eine Verbindung zur Datenbank her : Hier wird der Hostname als M66.net geschrieben, der den Anforderungen entspricht.
Erstellen Sie Anweisung : Erstellen Sie eine einfache Vorverarbeitungsanweisung durch $ mysqli-> vorbereiten .
Attributerkennung : Setzen Sie die Attribute ein, die in ein Array erkannt werden müssen, und erhalten Sie den Attributwert über attr_get .
Beurteilungsergebnis : Wenn Falsch zurückgegeben wird, bedeutet dies, dass das Attribut nicht unterstützt wird, andernfalls wird der aktuelle Attributwert angezeigt.
Bevor Sie MySQLI_STMT :: attr_get verwenden, müssen Sie sicherstellen, dass die Aussage erfolgreich erstellt wurde.
Nicht alle MySQL -Serverversionen oder MySQLI -Client -Treiber unterstützen alle Eigenschaften.
Wenn Sie Eigenschaften festlegen müssen, verwenden Sie die Methode MySQLI_stmt :: Attr_set , und Sie müssen zuerst die Support -Situation bestimmen.
Die Funktion von MySQLI_STMT :: attr_get kann nicht nur den Attributwert der Vorverarbeitungsanweisung erhalten, sondern auch die Feststellung, ob bestimmte Attribute unterstützt werden. In diesem Beispiel können Sie die Unterstützung der Umgebung leicht erkennen und sicherstellen, dass das Programm stabil in verschiedenen Umgebungen läuft. Es wird empfohlen, dieses Urteil hinzuzufügen, wenn komplexe Anwendungen geschrieben werden, die mit der Datenbank interagieren, um die Robustheit des Codes zu verbessern.