2012-06-01 65 views
0

使用PHP PDO讓我的Android應用程序與MySQL數據庫對話。PHP PDO MySQL插入錯誤,但作爲MySQL上的直接查詢使用

這是我的PHP文件:

<?php 
$pdo = new PDO("mysql:host=x;dbname=x", "x", "x"); 
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$sql = "INSERT INTO k_user_groep(group, user, rol) VALUES (?, ?, ?)"; 
$q = $pdo->prepare($sql); 
$q->execute(array($_GET['groupid'], $_GET['user'], $_GET['rol'])); 
?> 

表設計如下: GROUPID在其他表引用唯一索引, 使用者參照其他表的主鍵, ROL引用什麼。

直接在MySQL中,下面的查詢工作:

INSERT INTO `k_user_groep`(`group`, `user`, `rol`) VALUES ('1', 'test', 'v'); 

這是我的PHP文件調用:

x.php?groupid=1&user=test&rol=v 

它返回如下:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 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 'group, user, rol) VALUES ('1', 'test', 'v')' at line 1' in x.php:7 Stack trace: #0 x.php(7): PDOStatement->execute(Array) #1 {main} thrown in x.php on line 7 

有什麼建議?

回答

0

這顯然不是您在PDO代碼和MySQL客戶端中嘗試的同一個查詢 - 您在客戶端中引用了所有標識符,而沒有在PDO代碼中引用任何標識符。