Php PDO插入不插入

Php PDO插入不插入,php,mysql,pdo,Php,Mysql,Pdo,我试图使用preparepdo语句插入,但它似乎无法按我希望的方式工作。这是我的密码: $conn = new PDO('mysql:host=localhost;dbname=myDB', $username, $password); $sql = "INSERT INTO posts (`text`,`name`) VALUES (:text,:username)"; $q = $conn->prepare($sql); $q->bindParam(':text', $_GET

我试图使用preparepdo语句插入,但它似乎无法按我希望的方式工作。这是我的密码:

$conn = new PDO('mysql:host=localhost;dbname=myDB', $username, $password);

$sql = "INSERT INTO posts (`text`,`name`) VALUES (:text,:username)";
$q = $conn->prepare($sql);
$q->bindParam(':text', $_GET['textField'], PDO::PARAM_STR);
$q->bindParam(':username', $_SESSION['myusername'], PDO::PARAM_STR);
$q->execute();
print_r($q->errorInfo());
问题是,这没有任何作用,我不知道为什么,我使用以下指导方针来帮助我做到这一点

编辑:当我使用print\r时,我得到以下MySQL错误:

Array ( [0] => 42000 [1] => 1064 [2] => 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 ''text','name') VALUES ('a','user')' at line 1 ) 

因为文本是MySQL中的一种类型(look),所以查询失败,因为语法错误

在文本名称周围添加记号,然后重试

$sql = "INSERT INTO posts (text,name) VALUES (:text,:username)";
                           ----
                     This is the error.

TEXT
是MySQL中的一种数据类型。尝试将其置于刻度中。当您激活某种类型的
ERRMODE\u SILENT
时,您希望如何获得任何错误消息(这可能有助于您解决问题)?即使在生产环境中也不要这样做。始终实现正确的异常处理。@johncode我刚才这样做了,但它不起作用。您应该得到一个查询错误。正如@johnconde所说,
TEXT
是SQL中的语法。是否打印($q->errorInfo())为您返回任何内容?禁用
错误模式\u静音
。这就像把手指塞进耳朵,然后说“拉拉听不见”。如果出现问题,那么不要禁用那些可以告诉您问题所在的工具。