Wie erstelle ich eine Tabelle und füge Daten ein?

Nov 28 2020

Ich versuche hier $sqldie SQL-Befehle zu codieren

    $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!";

Dies ist die Ausgabe, als ich die Erstelltabelle entfernt habe. Die eingefügten Daten sind erfolgreich

New Table Created!

Connected Successfully!

Dies ist die Ausgabe, als ich die nicht entfernt habe 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!

Welche Funktion muss ich verwenden, um $sqldie SQL-Befehle wie folgt einzugeben? Ist es überhaupt möglich? Funktioniert SQL so?

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

Antworten

2 Dharman Nov 28 2020 at 18:50

Sie müssen dies in zwei Schritten tun. Bereiten Sie zuerst eine Anweisung mit dem CREATE TABLEund dann die zweite Anweisung mit vor 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();