使用PHP修改数据库时出错

时间:2015-12-07 19:35:55

标签: php html mysql database

我正在尝试将一堆数据插入数据库,但我遇到了这个错误:

  

SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第1行的“0”附近使用正确的语法

以下是我的两个文件:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Insert new Page</title>
    </head>
    <body>
        <form action="insert_page.php" method="get">
              New Page Name:<br>
              <input type="text" name="pagename">
              <input type="submit" value="Insert" >
        </form>
    </body>
</html>

这是insert_page.html,它只是一个文本框和一个按钮,用户可以在其中选择要在数据库中输入的新页面的新名称。

现在,这是按下按钮时调用的PHP

<?php

        $servername = "db.ist.utl.pt";
        $username = "ist178349";
        $password = "getrekt";
        $dbname = "ist178349";
        $pagename = $_POST['pagename'];

        try {
            $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);

            // set the PDO error mode to exception
            $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

            $sql = "INSERT INTO pagina (userid, pagecounter, nome, idseq, ativa)
            VALUES (78349, 95002, " + $pagename + ",1151988, true)";

            // use exec() because no results are returned
            $conn->exec($sql);

            echo "New record created successfully";
            }

        catch(PDOException $e)
            {
            echo $sql . "<br>" . $e->getMessage();
            }
        $conn = null;
?>

但是,我收到了这个错误,我无法理解。有什么建议?提前谢谢。

1 个答案:

答案 0 :(得分:1)

您应该修复包含+使用.的查询,或者将其保留并使用单引号,这在PHP sql查询字符串中是可接受的。

 $sql = "INSERT INTO pagina (userid, pagecounter, nome, idseq, ativa)
        VALUES (78349, 95002, '$pagename', 1151988, true)";