Warm tip: This article is reproduced from serverfault.com, please click

php-是否可以创建SQL表并同时插入数据?

(php - is it possible to create SQL table and insert data at the same time?)

发布于 2020-11-28 02:10:28

当我删除创建表时,它正在工作,但是有可能在代码上执行此操作吗?

在此处输入图片说明

这是代码

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

这是我没有删除创建表时的错误

错误:创建表学生(student_id INT,名称VARCHAR(20),专业VARCHAR(20),PRIMARY KEY(student_id));插入学生值(2,'kate','sociology')

你的SQL语法有误;检查与你的MariaDB服务器版本相对应的手册以获取正确的语法,以在第8行的'INSERT INTO student VALUE(2,'kate','sociology')'附近使用

Questioner
User99
Viewed
11
JM7 2020-11-28 11:22:07

你的代码中有2种错别字:

  • 丢失的 ”;” 在CREATE和INSERT语句之间。

  • INSERT语句使用VALUES,而不是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')";
    

除此之外,请检查官方文档中的mysqli Multiple语句mysqli_multi_query(),如第一个文档中所述:

API函数mysqli_query()和mysqli_real_query()并未设置激活服务器中多个查询所需的连接标志。一个额外的API调用用于多个语句,以减少意外SQL注入攻击的可能性。

或者,你也可以更改代码以单独运行每个查询。