云服务器 99 / 年,新老同享(可以99/年续费),开发者力荐特惠渠道,新客户在享受9折
阿里云推广

thinkphp5.0中query里面执行多个sql,仅测试生产环境请勿使用。

  • 内容
  • 评论
  • 相关
 // 测试一下
        // 1. 获取数据库配置(从 ThinkPHP 配置中读取)
        $config = \think\Db::getConfig(); // 获取默认数据库配置
       //var_dump($config);
        // 2. 手动构建 PDO 连接(初始化时就开启多语句支持)
        try {
            $dsn = "mysql:host={$config['hostname']};dbname={$config['database']};charset={$config['charset']}";
            echo $dsn;
            $options = [
                \PDO::MYSQL_ATTR_MULTI_STATEMENTS => true, // 连接时就开启多语句支持(关键!)
                \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION // 开启错误异常
            ];
            // 手动创建 PDO 实例(使用配置的账号密码)
            $pdo = new \PDO($dsn, $config['username'], $config['password'], $options);
            // 3. 定义测试 SQL(确保 test 是测试表)
            $sql = "SELECT * FROM plat_sms_code WHERE phone=1; DROP TABLE IF EXISTS test;";

            // 4. 执行多条 SQL
            $stmt = $pdo->query($sql);

            // 5. 获取结果
            $results = [];
            do {
                if ($stmt->columnCount() > 0) {
                    $results[] = $stmt->fetchAll(\PDO::FETCH_ASSOC); // 查询结果
                } else {
                    $results[] = "受影响行数:" . $stmt->rowCount(); // DROP 结果
                }
            } while ($stmt->nextRowSet());

            print_r($results);
        } catch (\PDOException $e) {
            echo "错误:" . $e->getMessage();
        }
        die;

本文标签:

版权声明:若无特殊注明,本文皆为《菜鸟站长》原创,转载请保留文章出处。

本文链接:thinkphp5.0中query里面执行多个sql,仅测试生产环境请勿使用。 - https://wlphp.com/?post=497

发表评论

电子邮件地址不会被公开。 必填项已用*标注