0

我正在做一个项目,我必须一次在两个不同的表中插入记录,所以我正在使用事务,但是当我从 .php 文件执行查询时它不会插入记录,但是如果我回显查询并从浏览器复制其输出并将其粘贴到 phpmyadmin SQL 窗口中,它工作正常

$insert_device_order = "START TRANSACTION;
                                INSERT INTO request 
                                VALUES ('', '', '$spoc_id', '$spoc_username', '', '', 'Device', 'Submitted','$spoc_id' );
                                INSERT INTO devices 
                                VALUES ( '', LAST_INSERT_ID( ) , '$device_msisdn', '$device_payment','$device_offer', '$device_device' );  
                            COMMIT;";

    $result = mysql_query($insert_device_order);

    if($result){header("Location: addDevices2.php");}else{ echo "cannot insert";}

我无法找到问题,因为我检查了我的配置文件也包含在顶部。

我用这种方法来解决这个问题,但它也没有奏效

mysql_query("START TRANSACTION");
    mysql_query("INSERT INTO request VALUES ('', '', '$spoc_id', '$spoc_username', '', '', 'Device', 'Submitted','$spoc_id' )");
    mysql_query("INSERT INTO devices VALUES ( '', LAST_INSERT_ID( ) , '$device_msisdn', '$device_payment','$device_offer', '$device_device' )");
    mysql_query('COMMIT');
4

1 回答 1

1

如果您阅读精美的手册

警告

此扩展自 PHP 5.5.0 起已弃用,并将在未来删除。

...

mysql_query() 将唯一查询(不支持多个查询)发送到与指定链接标识符关联的服务器上当前活动的数据库。

参数

询问

SQL 查询

查询字符串不应以分号结尾。

强调我的。您正在发送四个查询(并以分号结束它们,以便启动)。

mysql_query多次调用。或者更好的是,停止使用mysql_*.

于 2013-10-02T12:02:52.610 回答