繁体   English   中英

错误:SQLSTATE [42000]:语法错误或访问冲突:1064-PHP MYSQL

[英]Error: SQLSTATE[42000]: Syntax error or access violation: 1064 - PHP MYSQL

我了解这是先前询问的问题的重复。 但是,我遵循了先前的答案,但仍然没有结果。

我正在使用一条准备好的语句,以使用方法post从html <form>进行评论。 会话中的注释以及唯一ID将传递到页面addComment.php

这是“ addComment.php”的内容

<?php
    session_start();
    $servername = "localhost";
    $username = "root";
    $password = "root";
    $dbname = "somedatabase";
    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);

        // prepare sql and bind parameters
        $stmt = $conn->prepare("INSERT INTO patients( comments ) VALUES ( :comment ) WHERE unique_id = :unique_id");
        $stmt->bindParam( ':comment',           $comment    );
        $stmt->bindParam( ':unique_id',         $unique_id  );
        $comment          =   $_POST[      'comment'     ];
        $unique_id        =   $_SESSION[   'unique_id'        ];
        $stmt->execute();
        //header('Location: newMedicine.php');
    }
    catch(PDOException $e){
        echo "Error: " . $e->getMessage();
    }
    $conn = null;
?>

我已经回声了

 $comment          =   $_POST[      'comment'     ];
 $unique_id        =   $_SESSION[   'unique_id'        ];

并且它们都可以正常打印。

我得到的错误是

错误:SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有错误。 在第13行的'WHERE unique_id ='JohnDoe20RG2018-01-23 11:43:'附近检查与您的MySQL服务器版本相对应的手册以使用正确的语法

数据库中patients table中的unique_id字段具有相同的值

JohnDoe20RG2018-01-23 11:43:17

我看不到我要去哪里错了。 我在整个项目中都使用了多个带有Selects和Inserts的准备好的语句,它们都可以正常工作。

任何帮助,将不胜感激。

如果您要使用ID和注释创建新记录,请使用...

$stmt = $conn->prepare("INSERT INTO patients ( unique_id, comments ) 
                    VALUES ( :unique_id, :comment ) ");

如果是现有记录-

$stmt = $conn->prepare("UPDATE patients SET comments=:comment
                    WHERE unique_id = :unique_id");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM