php
  • mysql
  • 2013-08-12 20 views 1 likes 
    1

    执行我得到了这个请求:MySQL的语法错误时,由PHP

    "START TRANSACTION; DELETE FROM `awaiting_auth` WHERE `code` = '06b8465eed00727a1eac49fae89b88f876ded2eb' LIMIT 1; INSERT IGNORE INTO `prsn` SET `login` = 'new_user', `passwd` = '40bd001563085fc35165329ea1ff5c5ecbdbbeef', `color` = '#cbc5f2'; COMMIT;" 
    

    我收到此错误:

    "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELETE FROM awaiting_auth WHERE code = '06b8465eed00727a1eac49fae89b88f876de' at line 1".

    但是通过终端的一切执行SQL顺利的时候,并不会引发任何错误。
    我的要求有什么问题?提前致谢。

    +0

    使用'mysqli_error($康恩)',看看你会得到什么 –

    +2

    如何执行此使用PHP?发布相关代码 – 2013-08-12 11:07:38

    +0

    谢谢你们,这真的很快! – zogby

    回答

    2

    您必须在单独的 - > query()调用中拆分查询。 SQL控制台自动执行该操作。例如。

    ->query("START TRANSACTION"); 
    ->query("DELETE FROM..."); 
    
    0

    每个查询一个操作。所以你需要将你的查询分解为单个查询。

    0

    只需逐个运行这些查询,而不是单个数据包。

    0

    尝试执行每个单独的语句:

    START TRANSACTION; 
    DELETE FROM `awaiting_auth` WHERE `code` = '06b8465eed00727a1eac49fae89b88f876ded2eb' LIMIT 1; 
    INSERT IGNORE INTO `prsn`(`login`, `passwd`, `color`) VALUES('new_user','40bd001563085fc35165329ea1ff5c5ecbdbbeef', '#cbc5f2'); 
    COMMIT; 
    
    相关问题