致命错误:具有2个查询的未捕获异常'PDOException'

布拉德

我很确定我知道这个问题,我只是不知道如何使自己脱身。我有2个SQL查询,似乎需要单独运行。查询1将数据扔到temp(t)表中。然后第二个查询开始,并从(t)中获取数据,并将其与目标表中的email_addr进行比较,并&&在list_no_email.email_addr中检查以确保该记录也不存在。该错误闻到了相互矛盾的查询,只是不确定是否有其他方法可以做到这一点。

<p></p>
  <form enctype="multipart/form-data" method="POST">
        <p> Give a unique name for your upload </p>
        <input name="row_name" type="text">
        <br/>
        <input name="userfile" type="file">
        <br/>
        <input type="submit" value="Upload">

  </form>
<?php
$dsn = "mysql:host=$host;port=$port;dbname=$dbname"; //Data Source Name = Mysql
$db = new PDO($dsn, $db_username, $db_password,array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); //Connect to DB
$db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
if (isset($_FILES['userfile'], $_POST['row_name'])){
        $csv_file_name = $_FILES['userfile']['name'];
        $csv_file = $_FILES['userfile']['tmp_name'];
        $pre_do = $db->prepare(
                        "CREATE TEMPORARY TABLE t(i int);
                         LOAD DATA INFILE $csv_file_name
                         IGNORE INTO TABLE t
                         FIELDS TERMINATED BY ','
                         ENCLOSED BY '\"'
                         LINE TERMINATED BY '\r\n'"
                        );
        // exit if file fail
        if ( ! is_file( $csv_file ) )
                exit('File not found.');

        if (($handle = fopen($csv_file, "r")) !== FALSE) {
                $pre_do->execute(fgetcsv($handle));
        }
        fclose($handle);
        $do = $db->prepare(
                "INSERT INTO list_email(list_name, fname, lname, email_addr)
                 SELECT ins.*
                 FROM(
                        SELECT t.fname AS fname,
                        t.lname AS lname,
                        t.email_addr AS email_addr
                        FROM dual
                        UNION ALL
                        SELECT list_no_email.fname, list_no_email.lname, list_no_email.email_addr
                        FROM dual
                )
                AS ins WHERE NOT EXISTS(
                        SELECT 1
                        FROM list_email AS e
                        WHERE e.email_addr = ins.email_addr
                )
                AND NOT EXISTS(
                        SELECT 1
                        FROM list_no_email AS ne
                        WHERE ne.email_addr = ins.email_addr
                )"
        );
        $do->execute();

}
exit( "Complete!" );
?>

</body>
</html>

 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.' in /home/wemail1/www/pages/campaign-build.inc.php:69 Stack trace: #0 /home/wemail1/www/pages/campaign-build.inc.php(69): PDOStatement->execute() #1 /home/wemail1/www/index.php(170): include('/home/wemail1/w...') #2 {main} thrown in /home/wemail1/www/pages/campaign-build.inc.php on line 69
你的常识

不要在一个呼叫中运行多个查询

运行第一个

    $db->query("CREATE TEMPORARY TABLE t(i int)");

然后去第二

    // exit if file fail
    if ( ! is_file( $csv_file_name ) ) exit('File not found.');

    $stmt = $db->prepare("LOAD DATA INFILE ?
                     IGNORE INTO TABLE t
                     FIELDS TERMINATED BY ','
                     ENCLOSED BY '\"'
                     LINE TERMINATED BY '\r\n'"
                    );
    $stmt->execute(array($csv_file_name));

然后是第三次

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

致命错误:消息未捕获的异常“ PDOException”

来自分类Dev

致命错误:消息未捕获的异常“ PDOException”

来自分类Dev

PHP 致命错误:未捕获的异常 'PDOException' 带有消息 'SQLSTATE[42000]

来自分类Dev

PDO捕获PDOException错误

来自分类Dev

致命错误:未捕获的异常 'PDOException' 带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064

来自分类Dev

致命错误:未捕获的异常 'PDOException' 带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064

来自分类Dev

PHP致命错误:消息为'SQLSTATE [HY000] [2002]的未捕获的异常'PDOException'

来自分类Dev

消息“ SQLSTATE”的未捕获异常“ PDOException”

来自分类Dev

我的pdo中未捕获的异常“ PDOException”错误

来自分类Dev

博客错误:未捕获的异常“PDOException”,消息为“SQLSTATE[42000]”:

来自分类Dev

具有PDOException的PDO setAttribute

来自分类Dev

致命错误:未捕获的PDOException:SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误

来自分类Dev

未捕获的异常“ PDOException”消息“无效的数据源名称”

来自分类Dev

消息为“ SQLSTATE [42000]”的未捕获异常“ PDOException”

来自分类Dev

未捕获的异常“ PDOException”消息“无效的数据源名称”

来自分类Dev

Lumen:异常处理程序 - 未捕获 QueryException 或 PDOException

来自分类Dev

未捕获的异常 PDOException 即使语句在 try/catch 块中

来自分类Dev

未捕获的 PDOException: SQLSTATE[HY093]

来自分类Dev

无法解决此问题:致命错误:未捕获异常 'PDOException',消息为 'SQLSTATE[HY093]:无效参数号:未定义参数'

来自分类Dev

未捕获的异常 'PDOException' 带有消息 'SQLSTATE[42S22]:未找到列:1054

来自分类Dev

未捕获的异常“PDOException”与“SQLSTATE[42000] 在 PHP 5.2 上,但在 PHP 5.4 中没有

来自分类Dev

数据库关闭时捕获“ PDOException”

来自分类Dev

PDO-致命错误:未捕获PDOException:SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:

来自分类Dev

未捕获的PDOException泄露用户名和密码

来自分类Dev

未捕获的PDOException泄露用户名和密码

来自分类Dev

PDO:未捕获的PDOException:找不到驱动程序

来自分类Dev

MySQL INSERT 致命 -> 'PDOException' 带有消息 'SQLSTATE[42000]:

来自分类Dev

消息为'SQLSTATE [HY000] [2002]的未捕获异常'PDOException'没有此类文件或目录

来自分类Dev

消息为“ SQLSTATE [HY000] [2002]的未捕获异常” PDOException”没有此类文件或目录

Related 相关文章

  1. 1

    致命错误:消息未捕获的异常“ PDOException”

  2. 2

    致命错误:消息未捕获的异常“ PDOException”

  3. 3

    PHP 致命错误:未捕获的异常 'PDOException' 带有消息 'SQLSTATE[42000]

  4. 4

    PDO捕获PDOException错误

  5. 5

    致命错误:未捕获的异常 'PDOException' 带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064

  6. 6

    致命错误:未捕获的异常 'PDOException' 带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064

  7. 7

    PHP致命错误:消息为'SQLSTATE [HY000] [2002]的未捕获的异常'PDOException'

  8. 8

    消息“ SQLSTATE”的未捕获异常“ PDOException”

  9. 9

    我的pdo中未捕获的异常“ PDOException”错误

  10. 10

    博客错误:未捕获的异常“PDOException”,消息为“SQLSTATE[42000]”:

  11. 11

    具有PDOException的PDO setAttribute

  12. 12

    致命错误:未捕获的PDOException:SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误

  13. 13

    未捕获的异常“ PDOException”消息“无效的数据源名称”

  14. 14

    消息为“ SQLSTATE [42000]”的未捕获异常“ PDOException”

  15. 15

    未捕获的异常“ PDOException”消息“无效的数据源名称”

  16. 16

    Lumen:异常处理程序 - 未捕获 QueryException 或 PDOException

  17. 17

    未捕获的异常 PDOException 即使语句在 try/catch 块中

  18. 18

    未捕获的 PDOException: SQLSTATE[HY093]

  19. 19

    无法解决此问题:致命错误:未捕获异常 'PDOException',消息为 'SQLSTATE[HY093]:无效参数号:未定义参数'

  20. 20

    未捕获的异常 'PDOException' 带有消息 'SQLSTATE[42S22]:未找到列:1054

  21. 21

    未捕获的异常“PDOException”与“SQLSTATE[42000] 在 PHP 5.2 上,但在 PHP 5.4 中没有

  22. 22

    数据库关闭时捕获“ PDOException”

  23. 23

    PDO-致命错误:未捕获PDOException:SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:

  24. 24

    未捕获的PDOException泄露用户名和密码

  25. 25

    未捕获的PDOException泄露用户名和密码

  26. 26

    PDO:未捕获的PDOException:找不到驱动程序

  27. 27

    MySQL INSERT 致命 -> 'PDOException' 带有消息 'SQLSTATE[42000]:

  28. 28

    消息为'SQLSTATE [HY000] [2002]的未捕获异常'PDOException'没有此类文件或目录

  29. 29

    消息为“ SQLSTATE [HY000] [2002]的未捕获异常” PDOException”没有此类文件或目录

热门标签

归档