2015-07-12 65 views
0

我想下面的代码到数据插入到我的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()后执行,这没有奏效。

我做错了什么?

+1

什么是'GOREV'?没有看到在提供的代码。 – chris85

+0

对不起,我忘了翻译该字段。请检查这篇文章的新编辑版本。 – fobus

回答

1

Am I doing some thing wrong?

是的。

出于某种原因,您正在使用ODBC来连接mysql数据库,这使得您成为少有人尝试过这种不寻常的技术耦合之一。我们建议您使用​​。我相信在相同的查询中不会有丝毫问题

+0

是的,我知道这不是连接MySQL与ODBC和PDO的好方法。但我应该在我的项目中使用这种方式。 – fobus

相关问题