2

代码如下:

if (mysqli_multi_query($conn, $query)) {

    $token = $_POST['token'];

    $query = "
        INSERT INTO _usuarios (
            login_usuario, 
            nombre_usuario, 
            password_usuario, 
            id_perfil, 
            fecha_creacion_usuario, 
            id_usuarioCreate)
        VALUES (
            '$token',
            '$token',
            '$passCreate',
            6,
            NOW(),
            1
        );";

    if ($conn->query($query) === TRUE) 
    {
        echo "User created successfully";
    } 
    else 
    {
        echo "Error creating user: " . $conn->error.$query;
    }
}

每次我运行多查询(在这种情况下是一个非常大的用于创建数据库的 sql 脚本)并尝试执行下面的 INSERT 时,我都会收到相同的消息:

'表 _usuarios 不存在'

我相信这是因为在我尝试插入时脚本尚未完成运行。

有任何想法吗?

4

2 回答 2

1

是的,这是可能的。

while ($mysqli->next_result());

在您的多重查询之后运行此代码以使 PHP 脚本等到最后一个查询被执行。

请注意,对于您的第二个查询,您应该使用准备好的语句,而不是直接在查询中添加变量。

于 2016-03-02T17:55:52.210 回答
-1

关于错误消息,您的表似乎尚未创建。您可以执行以下操作以便一步创建它:

    $token = $_POST['token'];
    $token1 = $_POST['token1']; // I do not know it exactly anymore how you can retrieve all the POSTS

    SELECT $token, $token1, field3, field4, ... INTO _usuarios 

现在您的表格将同时创建和填充。

于 2016-03-02T17:53:12.670 回答