Ist es möglich, eine SQL-Tabelle zu erstellen und gleichzeitig Daten einzufügen?

Nov 28 2020

Wenn ich die Erstelltabelle entfernt habe, funktioniert sie, aber ist es möglich, dies mit Code zu tun?

Hier ist der 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!";

Hier ist der Fehler, als ich die Erstellungs-Tabelle nicht entfernt habe

Fehler: CREATE TABLE student (student_id INT, Name VARCHAR (20), Haupt-VARCHAR (20), PRIMARY KEY (student_id)); INSERT IN Studentenwert (2, 'Kate', 'Soziologie')

Sie haben einen Fehler in Ihrer SQL-Syntax. Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, auf die richtige Syntax für die Verwendung in der Nähe von 'INSERT INTO student VALUE (2,' kate ',' sociology ')' in Zeile 8

Antworten

2 JM7 Nov 28 2020 at 10:22

Sie haben 2 Tippfehler in Ihrem Code:

  • Fehlendes ";" zwischen den Anweisungen CREATE und INSERT.

  • Die INSERT-Anweisung verwendet VALUES, nicht 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')";
    

Überprüfen Sie außerdem die offiziellen Dokumente auf mysqli Multiple-Anweisungen und mysqli_multi_query (), da wie im ersten Dokument erwähnt:

Die API-Funktionen mysqli_query () und mysqli_real_query () setzen kein Verbindungsflag, das zum Aktivieren mehrerer Abfragen auf dem Server erforderlich ist. Ein zusätzlicher API-Aufruf wird für mehrere Anweisungen verwendet, um die Wahrscheinlichkeit versehentlicher SQL-Injection-Angriffe zu verringern.

Sie können auch Ihren Code ändern, um jede Abfrage einzeln auszuführen.