簡體   English   中英

PHP PDO MySQL插入錯誤,但可用作MySQL上的直接查詢

[英]PHP PDO MySQL Insert error, but works as direct query on MySQL

我正在使用PHP PDO讓我的Android應用程序與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

有什么建議嗎?

group 是mySQL中的保留字。

它在第二個示例中有效,因為您將列名包裝在反引號中。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM