【问题标题】:this is giving me a parse error [closed]这给了我一个解析错误[关闭]
【发布时间】:2014-10-20 20:44:57
【问题描述】:

给出解析错误的代码

$sql = INSERT INTO 'tdrilslt_ramen'.'awnsers' ('name', 'choices');

整个代码

<?php

include 'database.php';

try{
$name = $_POST['name']; 

$sql = INSERT INTO 'tdrilslt_ramen'.'awnsers' ('name', 'choices');
$q = $conn->prepare($sql);
$q->execute(array(
    ':name '=> $name,
    ':choices ' => $choices));

}catch (Exception $e) {
echo "Data could not be retrieved from the database.";
exit;
}


 ?>

【问题讨论】:

  • 你看过php手册的第一页了吗?如何定义和初始化字符串变量。 $sql = "INSERT INTO tdrilslt_ramen.awnsers (name, choices)";
  • setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)

标签: php pdo


【解决方案1】:

您为您的数据库/表使用了错误的标识符。

应该是反引号(注意你目前使用的引号)

另外,您正在使用 PDO 并在列名('name', 'choices') 中使用引号,这是不正确的。它们应该是: 占位符:

$sql = "INSERT INTO `tdrilslt_ramen`.`awnsers` (:name, :choices)";

【讨论】:

  • ('name', 'choices')(:name, :choices)
  • 这是一个普通的 can 'o worms.... awnsers 谁知道这在 DB 中是否拼写相同。很高兴我没有碰这个。
  • 我们会等到 OP 回来说“哦,谢谢,谢谢!” ;)
  • 有些日子我认为 SO 只需要 'sigh' 按钮。
  • @tearisha 这通常是最好的。你会惊讶于我在过去看到了多少问题,其中 OP 实际上是使用另一个 API 来连接查询类型而不与查询类型相关联。您不必添加它,但对正在使用的 API 进行注释始终是给定的 :)
【解决方案2】:

字符串需要用引号括起来

$sql = "Select ........ ";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 2020-11-16
    • 2016-11-20
    • 2013-03-06
    • 2022-01-13
    相关资源
    最近更新 更多