我想下面的代码到数据插入到我的MySQL表填写值PDOStatement对象执行不使用MySQL-ODBC
$pdo = new PDO('odbc:MYSQL', 'user', 'pass');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->query('use mydb');
$query=$pdo->query("CREATE TABLE MEMBERS (ID INT PRIMARY KEY, NAME NVARCHAR(20), DESCRIPTION NVARCHAR(20))");
try {
$query=$pdo->prepare('INSERT INTO MEMBERS (ID, NAME,DESCRIPTION) VALUES(?,?,?)',array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$query->execute(array(9,'JOHN DOE', 'IT'));
}catch (\Exception $e) {
var_dump($e);
}
然后我得到这个错误:
[MySQL][ODBC 5.1 Driver][mysqld-5.5.43-0ubuntu0.14.04.1-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' ,)' at line 1 (SQLExecute[1064] at /build/php5-RpYHCf/php5-5.5.9+dfsg/ext/pdo_odbc/odbc_stmt.c:254)'
我可以看到Mysql日志文件中的查询:
INSERT INTO MEMBERS (ID, NAME,DESCRIPTION) VALUES(, ,)
因此,执行函数无法填充数组中的值。
注意:我试过VALUES(:ID,:NAME,:DESCRIPTION)didn'工作。 另外,我已经尝试bindParam()后执行,这没有奏效。
我做错了什么?
什么是'GOREV'?没有看到在提供的代码。 – chris85
对不起,我忘了翻译该字段。请检查这篇文章的新编辑版本。 – fobus