【问题标题】:Syntax Error unexpected T_STRING [duplicate]语法错误意外 T_STRING [重复]
【发布时间】:2015-04-29 19:56:33
【问题描述】:

我正在尝试创建一个向我的数据库输入数据的表单,但是我在第 56 行遇到了意外的 T_String 语法错误。有问题的行是我的 SQL 插入语句,但我找不到我的错误。我的代码包含在下面,任何帮助将不胜感激。

        foreach ($postNameArr as $postName){
        if (array_key_exists($postName, $_POST)){
            $w = "INSERT INTO tblContent('PageHeading', 'SubHeading', 'Content', 'PageTitle', 'MetaDescription', 'MetaKeywords') VALUES (["ph"],["sh"],["pc"],["pt"],["md"],["mk"])";
            //if it works...
            if ($conn->query($w) === TRUE) {
                echo "New record created successfully";
            }
            //error handling
         else {
            echo "Error: " . $w . "<br>" . $conn->error."');";
        }

        $conn->close();
    }
}

【问题讨论】:

  • 问题本身的代码高亮显示有不应该存在的字符串。您需要转义引号 \" 或将 VALUES 中的双引号更改为单引号。
  • 您还为列使用了错误的标识符。
  • 为什么方括号中有值? MySQL 在其查询中不使用该语法。
  • 您的意思是写$_POST["ph"] 而不是["ph"]

标签: php arrays mysqli foreach


【解决方案1】:

VALUES 子句中的引号是字符串文字的结尾。但是,最好的方法不是展示如何解决这个问题,而是使用准备好的查询。

$stmt = $conn->prepare("INSERT INTO tblContent(`PageHeading`, `SubHeading`, `Content`, `PageTitle`, `MetaDescription`, `MetaKeywords`) VALUES (?, ?, ?, ?, ?, ?)";
$stmt->bind_param("ssssss", $_POST["ph"],$_POST["sh"],$_POST["pc"],$_POST["pt"],$_POST["md"],$_POST["mk"]);
$stmt->execute();

此外,表名和列名周围的引号是反引号,而不是单引号或双引号——它们构成字符串文字。但你通常根本不需要它们,只有在名称与 MySQL 保留字冲突或包含特殊字符时才需要它们。

【讨论】:

  • 不错,已修复。
【解决方案2】:

这部分我没看懂

         (["ph"],["sh"],["pc"],["pt"],["md"],["mk"])

如果定义了 ph,sh,pc,则应使用双引号。

        (".ph.",".sh."...)

您必须将 php verable 放在引号中。 如果你从单引号开始 你应该把 php 变量放在单引号中 例如

    $gettest="hello booboo !";
    $singel= ' i start with single quoes  so i put my variable in singel quotes '.$gettest.' ';
    $double= " i start with double quoes  so i put my variable in double quotes ".$gettest." ";

echo $singel."<br>";
echo $double."<br>";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 2019-02-09
    • 2019-03-13
    • 2016-02-09
    相关资源
    最近更新 更多