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 スクリプトを待機させます。

2 番目のクエリでは、クエリに変数を直接追加するのではなく、準備されたステートメントを使用する必要があることに注意してください。

于 2016-03-02T17:55:52.210 に答える
-1

エラー メッセージに関しては、テーブルがまだ作成されていないようです。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 に答える