You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP语法错误求助:unexpected variable "$arahan"报错排查

语法错误排查与修复

你遇到的Parse error: syntax error, unexpected variable "$arahan"是因为第22行的SQL语句字符串拼接语法错误,PHP解析器无法正确识别变量$arahan的位置。

从你提供的代码截图来看,问题出在SQL语句的变量拼接上,以下是两种修复方案:

方案1:修正字符串拼接语法

如果用单引号包裹SQL片段,需要用连接符(.)把变量和字符串拼接起来,同时给字符串类型的变量加上引号:

$sql = 'UPDATE pesakit SET nama="' . $nama . '", no_kad_pengenalan="' . $no_kad_pengenalan . '", jantina="' . $jantina . '", no_tel="' . $no_tel . '", alamat="' . $alamat . '", tarikh_lahir="' . $tarikh_lahir . '", arahan="' . $arahan . '" WHERE id_pesakit="' . $id_pesakit . '"';

如果用双引号包裹整个SQL,内部的变量可以直接解析,但要注意转义内部的双引号:

$sql = "UPDATE pesakit SET nama=\"$nama\", no_kad_pengenalan=\"$no_kad_pengenalan\", jantina=\"$jantina\", no_tel=\"$no_tel\", alamat=\"$alamat\", tarikh_lahir=\"$tarikh_lahir\", arahan=\"$arahan\" WHERE id_pesakit=\"$id_pesakit\"";

方案2:使用预处理语句(更安全,避免SQL注入)

直接拼接变量到SQL里存在注入风险,推荐用预处理语句:

// 假设你用的是mysqli连接
$stmt = $conn->prepare("UPDATE pesakit SET nama=?, no_kad_pengenalan=?, jantina=?, no_tel=?, alamat=?, tarikh_lahir=?, arahan=? WHERE id_pesakit=?");
// 绑定参数,"sssssssi"对应参数类型:字符串、字符串、字符串、字符串、字符串、字符串、字符串、整数(根据你的字段类型调整)
$stmt->bind_param("sssssssi", $nama, $no_kad_pengenalan, $jantina, $no_tel, $alamat, $tarikh_lahir, $arahan, $id_pesakit);
$stmt->execute();

额外检查

  • 确认$arahan在使用前已经通过$_POST['arahan']或其他方式正确赋值
  • 检查代码中是否有遗漏的引号、分号,这些小细节也会触发语法错误

内容的提问来源于stack exchange,提问作者eichaaa aisyah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 04:07:11