Position actuelle: Accueil> Derniers articles> Utilisez $ errno pour déterminer si mysqli :: prépare () réussit

Utilisez $ errno pour déterminer si mysqli :: prépare () réussit

M66 2025-05-28

Dans PHP, MySQLI :: Préparer () est une fonction très importante pour préparer des instructions SQL lors de l'utilisation de bases de données MySQL. Dans de nombreux cas, nous voulons nous assurer que le processus de préparation des instructions SQL n'est pas faux, surtout si le fonctionnement de la base de données échoue. mysqli :: $ errno est un attribut que nous pouvons utiliser pour déterminer s'il y a une erreur. Il peut nous aider à déterminer si la méthode Pread () est exécutée avec succès.

1. Qu'est-ce que mysqli :: prépare () ?

MySQLI :: Préparez () est une fonction utilisée pour prétraiter les instructions SQL. L'avantage du prétraitement est qu'il peut empêcher l'injection de SQL et améliorer l'efficacité des opérations de base de données. En usage réel, nous envoyons généralement des instructions SQL au serveur MySQL via la fonction Prept () , qui sont analysées et optimisées par le serveur MySQL.

Par exemple, le code suivant montre comment utiliser mysqli :: prépare () pour préparer une instruction SQL:

 <?php
$mysqli = new mysqli("localhost", "username", "password", "database");

// Check connection
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
    exit();
}

$stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?");
?>

2. Utilisez MySqli :: $ Errno pour déterminer si Préparez () réussit

Lorsque vous utilisez MySQLI :: Préparer () , s'il y a une erreur dans l'instruction SQL, Préparez () reviendra False , et vous pouvez obtenir des informations d'erreur détaillées en vérifiant MySQLI :: $ Errno .

 <?php
// Préparer SQL Déclaration
$stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?");

if ($stmt === false) {
    // si prepare() retour false,Cela signifie SQL Déclaration有错误
    echo "MySQLi prepare failed. Error number: " . $mysqli->errno . "\n";
    echo "Error message: " . $mysqli->error . "\n";
} else {
    // si prepare() succès,Effectuer d&#39;autres opérations
    echo "SQL prepared successfully!\n";
}
?>

Dans cet exemple, si Prepare () échoue, $ mysqli-> errno renvoie un code d'erreur. Vous pouvez utiliser ce code d'erreur pour comprendre la raison de l'échec. $ mysqli-> L'erreur fournit des informations d'erreur spécifiques pour aider les développeurs à localiser rapidement les problèmes.

3. Code d'erreur MySqli :: $ Errno

Lorsque l'exécution MySQLI :: PREPEPY () échoue, MySQLI :: $ Errno sera défini sur une valeur non nulle. Voici quelques codes d'erreur courants:

  • 1049 : La base de données n'existe pas.

  • 1054 : Le champ n'existe pas (par exemple, le nom de colonne utilisé dans Select est mal orthographié).

  • 1064 : Erreur de syntaxe SQL.

  • 1146 : Le tableau n'existe pas.

Vous pouvez utiliser ces codes d'erreur pour déterminer des problèmes spécifiques, tels que:

 if ($stmt === false) {
    switch ($mysqli->errno) {
        case 1049:
            echo "La base de données n&#39;existe pas!";
            break;
        case 1064:
            echo "SQL Erreur de syntaxe!";
            break;
        default:
            echo "Erreur inconnue: " . $mysqli->errno;
            break;
    }
}

4. Exemple de code complet

 <?php
$mysqli = new mysqli("localhost", "username", "password", "database");

// Vérifiez la connexion
if ($mysqli->connect_errno) {
    echo "Échec de la connexion: " . $mysqli->connect_error;
    exit();
}

// Préparer SQL Déclaration
$stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?");

if ($stmt === false) {
    // si prepare() retour false,Imprimer le message d&#39;erreur
    echo "MySQLi prepare failed. Error number: " . $mysqli->errno . "\n";
    echo "Error message: " . $mysqli->error . "\n";
} else {
    // sisuccès
    echo "SQL prepared successfully!\n";
    $stmt->close();
}

$mysqli->close();
?>
  • Étiquettes associées:

    mysqli