是否有可能使用PHP mysqli_multi_query跟踪执行mysql脚本的进度?

问题描述:

代码如下:是否有可能使用PHP mysqli_multi_query跟踪执行mysql脚本的进度?

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; 
    } 
} 

每次我运行multiquery(在这种情况下是一个数据库创建一个非常大的SQL脚本),我尝试执行下面的INSERT,我得到了同样的信息:

“表_usuarios不存在”

我认为,这是因为剧本尚未完成由我试图做插入时运行。

任何想法?

+1

该错误表示您没有在选定的数据库上创建表_usuarios,也许您应该在连接上验证是否选择了所需的数据库。 – Rhopercy

+0

这是使用MySQL和PHP的错误方法。您可以接受SQL注入。使用PDO。 – meagar

是的,这是可能的。

while ($mysqli->next_result()); 

在多重查询后运行此代码,使PHP脚本等待,直到执行最后一个查询。

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

+0

非常感谢,您的解决方案工作得非常好! –

关于错误消息,看起来好像您的表尚未创建。您可以执行以下操作以创建一步:

$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 

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