首页 > 解决方案 > 如何创建表并向其中插入数据?

问题描述

我要做的是在$sql这我要编写 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!";

这是我删除创建表时的输出。插入数据成功

New Table Created!

Connected Successfully!

这是我没有删除时的输出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!

我需要使用什么函数来输入$sql这样的 SQL 命令?甚至可能吗?这就是 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');"

标签: phpmysqli

解决方案


您需要分两步完成。首先,用 准备一个语句,CREATE TABLE然后用 准备第二个语句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();

推荐阅读