使用transaction插入mysql数据库中的两个不同的表

时间:2013-10-02 11:59:36

标签: php mysql

我正在开发一个项目,我必须一次在两个不同的表中插入记录,所以我使用的是事务,但是当我从.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');

1 个答案:

答案 0 :(得分:1)

如果你read the fine manual

  

警告

     

自PHP 5.5.0起,此扩展程序已弃用,将来将被删除。

     

...

     

mysql_query()向与指定link_identifier关联的服务器上的当前活动数据库发送唯一查询(不支持多个查询)。

     

参数

     

查询

     

SQL查询

     

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

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

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