以下の SQL UPDATE ステートメントはエラーを返しますが、その理由がわかりません。
Failed to run query: 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 6
パラメーターをバインドするために渡す配列の vardump を既に実行しましたが、何も変わっていません。正しい値が渡され、タイプミスがないか再確認しました。私が達成しようとしているのは、データベースに挿入した後、firstname - lastname と user_id に基づいてユーザー名を自動生成することです。
追加の質問かもしれませんが、何か害があると思いますか?もしそうなら、あなたの提案は何ですか? 私はまだPHPの学習段階にあります。
ありがとう。
...
//Autogenerate user_name based on first name, last name and user_id (auto-increment)
$query_username = "
UPDATE user_tbl
SET
user_name = :username
WHERE
user_id = :userid
)
";
// The parameter values
$query_params_username = array(
':username' => $_SESSION['user']['first_name'].".".$_SESSION['user']['last_name'].$_SESSION['user']['user_id'],
':userid' => $_SESSION['user']['user_id']
);
try
{
// Execute the query against the database
$stmt_username = $db->prepare($query_username);
$stmt_username->execute($query_params_username);
}
catch(PDOException $ex)
{
//Not to be used in production
die("Failed to run query: " . $ex->getMessage());
}
$_SESSION['user']['username'] = $_SESSION['user']['first_name'].".".$_SESSION['user']['last_name'].$_SESSION['user']['user_id'];