繁体   English   中英

如何连续运行两个mysqli多查询

[英]How to run two mysqli multi query consecutively

在我的脚本之一中,我使用一个mysqli_multi_query进行一些删除操作,然后使用一个mysqli_multi_query()进行一些插入操作。 但是我得到以下错误。 “命令不同步;您现在不能运行此命令”。 我该如何解决。 这是我的代码段。

$resourceDeleteSql = "";
$resourceDeleteSql .= "Delete from acl_mr where group_id = $group_id ;";
$resourceDeleteSql .= "Delete from acl_mpr where group_id = $group_id ;";
$resourceDeleteSql .= "Delete from acl_mpfr where group_id = $group_id ;";
$resourceDeleteSqlResult = mysqli_multi_query($con, $resourceDeleteSql) or die(mysqli_error($con));  
if ($resourceDeleteSqlResult) {

    $resourceInsertSql = '';
    foreach ($resource as $moduleKey => $module) {

        if (is_array($module)) {
            foreach ($module as $pageKey => $page) {
                if (is_array($page)) {

                    foreach ($page as $field) {
                        $resourceInsertSql .= "INSERT INTO acl_mpfr (group_id ,field_sys_name ,page_sys_name,module_sys_name) VALUES ( '$group_id', '$field', '$pageKey', '$moduleKey');";
                    }
                } else {

                    $resourceInsertSql .= "INSERT INTO acl_mpr (`group_id` ,`page_sys_name`,`module_sys_name`) VALUES ( '$group_id','$page', '$moduleKey');";
                }
            }
        } else {
            $resourceInsertSql .= "INSERT INTO acl_mr (`group_id` ,`module_sys_name`) VALUES ( '$group_id', '$module');";
        }
    }

    $resourceInsertSqlResult = mysqli_multi_query($con, $resourceInsertSql) or die(mysqli_error($con));

检查此链接: http : //dev.mysql.com/doc/refman/5.0/en/commands-out-of-sync.html

如果命令不同步; 您现在无法在客户端代码中运行此命令,您以错误的顺序调用了客户端函数。

例如,如果您正在使用mysql_use_result()并尝试执行新查询,然后再调用mysql_free_result() ,则可能会发生这种情况。 如果您尝试执行两个返回数据的查询,而没有在两者之间调用mysql_use_result()mysql_store_result() ,也会发生这种情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM