查询:
$PDO->query('use `INFORMATION_SCHEMA`');
失败:
SQLSTATE[HY000]: General error: 2030 This command is not supported in the prepared statement protocol yet.
但我没有使用prepare()
+ execute()
的预准备语句来处理此查询,我正在使用query()
方法。我该如何解决这个问题?
版本信息:
PHP版本:5.5.9-1ubuntu4
mysql版本:14.14 Distrib 5.5.35, for debian-linux-gnu (x86_64) using readline 6.3
答案 0 :(得分:0)
我认为问题在于您尝试在PDO->查询方法中使用“use”命令。当您使用MySQL命令行工具并且它用于选择数据库时,通常使用“use”命令。
创建PDO时,通常会指定要使用的数据库。请看以下示例:
$DBH = new PDO("mssql:host=$host;dbname=$dbname, $user, $pass");
创建数据库处理程序PDO所需的四件事是:
您正在做的事情(我无法分辨,因为您没有列出您的PDO声明声明)正在连接到另一个数据库,然后尝试执行查询以切换数据库。我不认为PDO的目的是为了做到这一点。
如果要连接到INFORMATION_SCHEMA数据库,则应在PDO中创建或创建另一个PDO。
$DBH = new PDO("mssql:host=$host;dbname=INFORMATION_SCHEMA, $user, $pass");
希望这能解决你的问题。