是否有可能使用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不存在”
我认为,这是因为剧本尚未完成由我试图做插入时运行。
任何想法?
答
是的,这是可能的。
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
现在您的表格将同时创建并填充。
该错误表示您没有在选定的数据库上创建表_usuarios,也许您应该在连接上验证是否选择了所需的数据库。 – Rhopercy
这是使用MySQL和PHP的错误方法。您可以接受SQL注入。使用PDO。 – meagar