【问题标题】:pdo execute multiple queriespdo 执行多个查询
【发布时间】:2012-12-29 05:10:17
【问题描述】:

我需要运行插入和同时更新,但我只使用插入测试来捕获错误。

当我定义正确和不正确的表时,PDO 不会报告错误,但如果我运行查询以选择一个不正确的表,则会报告错误。

我没有足够的知识来解决这个问题,我真的需要一起执行两个查询 谢谢。

$db-> setAttribute( PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION );

try{
    $stmt = $db-> prepare( "INSERT INTO test ( name ) values( 'new name' );
                            INSERT INTO xast ( xame ) values( 'new name' );" );
    $stmt->execute();
}catch( PDOException $e ){
    print_r( $e );
}


try{
    $stmt = $db-> prepare( "INSERT INTO xast ( xame ) values( 'new name' );" );
    $stmt->execute();
}catch( PDOException $e ){
    print_r( $e );
}
**Column not found: 1054 Unknown column 'xame'**

【问题讨论】:

  • 如果您执行多个查询并且错误出现在第一个查询中,您会收到错误吗?
  • 正确的字段是nameI switched to xame`来捕捉错误,但他没有拍。
  • 我明白,我的问题是把坏的放在第一位而不是第二位是否会有所作为。
  • 据我所知,PDO 不支持执行多条语句。 PDO手册中没有任何内容。 mysqli 支持它们,你可以用它来代替吗?您在标签中提到了它。
  • 是的,可以用mysqli试试。你有我的教程吗?谢谢

标签: php mysql sql pdo


【解决方案1】:

此(此链接:PDO support for multiple queries (PDO_MYSQL, PDO_MYSQLND))解决方案可帮助您同时运行多个查询, 如果出现不正确的查询,它不会执行任何其他查询。

【讨论】:

    【解决方案2】:

    在您的情况下准备多个查询是没有意义的。

    首先,专门为 tins 案例发明的准备好的语句:准备一次,执行多次。所以,你可以这样准备

    INSERT INTO test (name) values(?)
    

    然后执行尽可能多的插入操作

    接下来。对于 INSERT 查询,Mysql 支持在一个查询中使用多个 VALUES 子句,例如

    INSERT INTO test (name) values ('new name' ),('name'),(...)
    

    等等。

    如果您需要在插入后更新 - 也没问题。
    只需运行 2 个单独的查询 - 一个 INSERT 和一个 UPDATE。不会有任何问题。

    【讨论】:

    • 我说我需要插入和更新,而不是有很多字段的插入。我需要插入和更新,但显然无法正常工作,谢谢
    猜你喜欢
    • 1970-01-01
    • 2013-04-06
    • 2011-06-11
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 2012-12-29
    相关资源
    最近更新 更多