SQL 語句中 VALUES ('$name', '$addtime', '$content'),$addtime 前有空格,去掉空格也能正常執行,疑惑空格作用。
空格無語法義務,純屬代碼可讀性規範。 SQL 標準允許關鍵字、標識符、字面值之間任意空白字符(空格、換行、制表)。
// 逗號後加空格,參數前後加空格,增強可讀性
$sql = "INSERT INTO `message` (`author`, `addtime`, `content`)
VALUES ('$name', '$addtime', '$content')";
**直接拼接變量極其危險**,必須用**預處理語句**:
$stmt = $pdo->prepare("INSERT INTO `message` (`author`, `addtime`, `content`) VALUES (?, ?, ?)");
$stmt->execute([$name, $addtime, $content]);
MySQL DATETIME 接受 'YYYY-MM-DD HH:MM:SS' 字符串,確保 $addtime 為此格式(date('Y-m-d H:i:s'))。
空格只是美觀,**參數化才是正道**。