0
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 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 '' at line 1' in C:\xampp\htdocs\recover\recover.php:47 Stack trace: #0 C:\xampp\htdocs\recover\recover.php(47): PDOStatement->execute(Array) #1 {main} thrown in C:\xampp\htdocs\recover\recover.php on line 47

これは私のコードです:

// This checks if variabes are not empty, and if username is less than 11 characters long.
if (!empty($username) && !empty($password) && !empty($message) && strlen($username) < 11) {

    // Shortcut for our ID generator function.
    $ID = generateID();

    // Now lets insert (register the account) these datas to our database.
    $insert = $connect->prepare("INSERT INTO users (username, password, message, date, time, id) VALUES (:username, :password, :message, CURDATE(), CURTIME(), :id");

    // Executing in array, because if we binded all these variables, it would look very bad.
    $insert->execute(array(
        ':username' => $username,       
        ':password' => $password, 
        ':message' => $message, 
        ':id' => $ID
    ));

    if (!$insert->execute()) {
        print_r($insert->errorInfo());
    }       
}

私はPHPを初めて使用しますが、mysql_が古くなる前に、多くの人がPDOの使用を開始するように言っています。

それで始めました、そしてそれは本当に難しいようです。それに慣れようとしています。

私は何を間違えましたか?ありがとう!

4

2 に答える 2

3

VALUESには閉じ括弧がありません。

于 2013-03-22T01:41:29.360 に答える
2

およびdatetimeキーワードです。バックティックを使用してそれらをエスケープしてください。


VALUES句の括弧がありません。


prepareステートメントは次のようになります。

$insert = $connect->prepare(
    "INSERT INTO users ( username, password, message, `date`, `time`, id )
        VALUES( :username, :password, :message, CURDATE(), CURTIME(), :id )"
);
于 2013-03-22T01:41:13.340 に答える