php - pdo 执行多个查询

标签 php mysql sql pdo

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

当我定义一个正确的表和一个不正确的表时,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'**

最佳答案

在您的案例中准备多个查询是没有意义的。

首先,prepared statements 专门针对 tins case 发明:一次准备,多次执行。所以,你可以这样准备

INSERT INTO test (name) values(?)

然后执行与插入次数一样多的次数

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

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

等等。

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

关于php - pdo 执行多个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14332041/

相关文章:

javascript - 保存Web应用程序的动态图结构

php - 使用 id 打开 session

php - Mysql错误: A connection attempt failed because the connected party did not properly respond

mysql 将行拆分为多列和多行

php - 使用 like 子句执行准备好的 PDO 语句

mysql - 如何用行更新 SQL 表?

SQL Server 数据库 - 获取最后一条记录

php - 使用 PHP 检查第一个单选按钮

php - 模型自增号问题.. 1000条记录后

php - 如何计算php中包括空格和正则表达式在内的所有字符?