【问题标题】:sql with $_SESSION inside. Get this: Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE) [duplicate]里面有 $_SESSION 的 sql。得到这个:解析错误:语法错误,意外''(T_ENCAPSED_AND_WHITESPACE)[重复]
【发布时间】:2020-02-07 16:45:55
【问题描述】:

php中单引号内的单引号,我不知道如何获取字符串内的$_SESSION变量。 此行的格式存在问题。

我一直在查看多个类似的答案,但没有一个有效:

How do I use single quotes inside single quotes?

syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE) in Insert statement

$sql = "INSERT INTO pushtable (uidUsers, pushAntall, pushDato, pushKlokkeslett) VALUES ('$_SESSION['uid']', '$pushAntall', '$pushDato', '$pushKlokkeslett')";

错误

解析错误:语法错误,意外 '' (T_ENCAPSED_AND_WHITESPACE), 期待 '-' 或标识符 (T_STRING) 或变量 (T_VARIABLE) 或 号码(T_NUM_STRING)

也试过了:

$sql = "INSERT INTO `pushtable` (`uidUsers`, `pushAntall`, `pushDato`, `pushKlokkeslett`) VALUES ('{$_SESSION['uid']}', '$pushAntall', '$pushDato', '$pushKlokkeslett');";

错误

注意:未定义变量:_SESSION

我该如何解决这个问题?

-已解决-

$sql = "INSERT INTO pushtable (uidUsers, pushAntall, pushDato, pushKlokkeslett) VALUES ('"·$_SESSION['uid'] ."', '$pushAntall', '$pushDato', '$pushKlokkeslett') ";

【问题讨论】:

  • 好吧,你总是可以先把它赋值给一个变量
  • @CarlBinella 我试过这样做:$username = $_SESSION['uid'];。没用..
  • 你开始会话了吗?
  • 所以插入 $username 而不是 $_SESSION['uid']
  • @Asphaug Elaborate 没用。你收到同样的错误吗?你真的用$username替换了吗?

标签: php html css sql


【解决方案1】:

一个优雅的解决方案是使用 sprinf sprintf

$sql = sprintf("INSERT INTO pushtable (uidUsers, pushAntall, pushDato, 
pushKlokkeslett) VALUES ('%s', '%s', '%s', '%s')",
$_SESSION['uid'],
$pushAntall,
$pushAntall,
$pushKlokkeslett
);

或者修复你的代码:

$sql = "INSERT INTO pushtable (uidUsers, pushAntall, pushDato, pushKlokkeslett) VALUES ('". $_SESSION['uid'] ."', '$pushAntall', '$pushDato', '$pushKlokkeslett')";

同时检查string operators

【讨论】:

  • 寻求“修复代码”解决方案,仍然抛出:ERROR >解析错误:语法错误,当我做$sql = "INSERT INTO pushtable (uidUsers, pushAntall, pushDato, pushKlokkeslett) VALUES ('"·$_SESSION['uid'] ."', '$pushAntall', '$pushDato', '$pushKlokkeslett')";时出现意外'·'(T_STRING)
  • 而且 srinf 仍然抛出“注意:未定义的变量:_SESSION”。我仍然可以回显 uid。
  • @Asphaug 你在这里没有使用. -> "·$
  • @CarlBinella 对不起。用普通点替换了奇怪的点。 $sql = "INSERT INTO pushtable (uidUsers, pushAntall, pushDato, pushKlokkeslett) VALUES ('".$_SESSION['uid'] ."', '$pushAntall', '$pushDato', '$pushKlokkeslett')"; 仍然抛出“注意:未定义变量:_SESSION in”
  • 突然开始工作了。 $sql = "INSERT INTO pushtable (uidUsers, pushAntall, pushDato, pushKlokkeslett) VALUES ('"·$_SESSION['uid'] ."', '$pushAntall', '$pushDato', '$pushKlokkeslett')"; 成功了。谢谢大家!
猜你喜欢
  • 2015-01-09
  • 1970-01-01
  • 2017-10-21
  • 1970-01-01
  • 2017-12-29
  • 1970-01-01
  • 2018-06-28
  • 2016-02-07
  • 1970-01-01
相关资源
最近更新 更多