Comment créer un tableau et y insérer des données?

Nov 28 2020

Ce que j'essaie de faire, c'est $sqlici que je vais coder les commandes SQL

    $connect = new mysqli($servername, $username, $password, $database);
    
    if ($connect -> connect_error) { die("Unable to Connect : " . connect_error); } $sql = /*"CREATE TABLE student (
        student_id INT,
        name VARCHAR(20),
        major VARCHAR(20),
        PRIMARY KEY(student_id)
    ); */
    
    "INSERT INTO student VALUE(3, 'joseph', 'education');";
    
    if ($connect -> query($sql) === TRUE) {
        echo "New Table Created! <br><br>";
    }
    else {
        echo "Error : " . $sql . " <br><br>" . $connect -> error . "<br><br>";
    }
    
    echo "Connected Successfully!";

Ceci est la sortie lorsque j'ai supprimé la table de création. Les données insérées ont réussi

New Table Created!

Connected Successfully!

C'est la sortie quand je n'ai pas supprimé le CREATE TABLE

Error : CREATE TABLE student ( student_id INT, name VARCHAR(20), major VARCHAR(20), PRIMARY KEY(student_id) ); INSERT INTO student VALUE(3, 'joseph', 'education');

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INSERT INTO student VALUE(3, 'joseph', 'education')' at line 8

Connected Successfully!

Quelle fonction dois-je utiliser pour insérer $sqlles commandes SQL comme celle-ci? Est-ce même possible? Est-ce ainsi que fonctionne SQL?

$sql = "CREATE TABLE student (
        student_id INT,
        name VARCHAR(20),
        major VARCHAR(20),
        PRIMARY KEY(student_id)
    );
    
    INSERT INTO student VALUE(3, 'joseph', 'education');"

Réponses

2 Dharman Nov 28 2020 at 18:50

Vous devez le faire en deux étapes. Commencez par préparer une déclaration avec le CREATE TABLE, puis préparez la deuxième déclaration avec INSERT.

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$connect = new mysqli($servername, $username, $password, $database); $connect->set_charset('utf8mb4'); // always set the charset

$sql = "CREATE TABLE student ( student_id INT, name VARCHAR(20), major VARCHAR(20), PRIMARY KEY(student_id) )"; $stmt = $connect->prepare($sql);
$stmt->execute(); $stmt = $connect->prepare("INSERT INTO student VALUE(3, 'joseph', 'education')"); $stmt->execute();