est-il possible de créer une table SQL et d'insérer des données en même temps?
lorsque j'ai supprimé la table de création, cela fonctionne, mais est-il possible de le faire sur du code?

voici le code
$sql = "CREATE TABLE student ( student_id INT, name VARCHAR(20), major VARCHAR(20), PRIMARY KEY(student_id) ) INSERT INTO student VALUE(1, 'Jack', 'biology')"; if ($connect -> query($sql) === TRUE) { echo "New Table Created! <br><br>"; } else { echo "Error : " . $sql . " <br><br>" . $connect -> error . "<br><br>";
}
echo "Connected Successfully!";
Voici l'erreur lorsque je n'ai pas supprimé la table de création
Erreur: CREATE TABLE student (student_id INT, name VARCHAR (20), major VARCHAR (20), PRIMARY KEY (student_id)); INSÉRER DANS LA VALEUR DE L'ÉTUDIANT (2, 'kate', 'sociologie')
Vous avez une erreur dans votre syntaxe SQL; vérifiez le manuel qui correspond à votre version de serveur MariaDB pour la bonne syntaxe à utiliser près de 'INSERT INTO student VALUE (2,' kate ',' sociology ')' à la ligne 8
Réponses
Vous avez 2 fautes de frappe dans votre code:
Disparu ";" entre les instructions CREATE et INSERT.
L'instruction INSERT utilise VALUES et non VALUE.
$sql = "CREATE TABLE student ( student_id INT, name VARCHAR(20), major VARCHAR(20), PRIMARY KEY(student_id) ); INSERT INTO student VALUES (1, 'Jack', 'biology')";
En plus de cela, consultez la documentation officielle pour mysqli Multiple déclarations et mysqli_multi_query () puisque comme mentionné dans le premier document:
Les fonctions API mysqli_query () et mysqli_real_query () ne définissent pas d'indicateur de connexion nécessaire pour activer plusieurs requêtes sur le serveur. Un appel d'API supplémentaire est utilisé pour plusieurs instructions afin de réduire la probabilité d'attaques par injection SQL accidentelles.
Ou vous pouvez également modifier votre code pour exécuter chaque requête individuellement.