【问题标题】:The with insert in PHP [duplicate]PHP中的插入[重复]
【发布时间】:2013-11-16 20:45:28
【问题描述】:
$m = clearData($_POST['msg']);
$sql = "INSERT INTO messages(message,message_from)
  VALUES('$m','$_SESSION['id']')";

我在插入时遇到错误,但我没有找到:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

【问题讨论】:

标签: php mysql


【解决方案1】:

在定义文本时不能使用这样的数组。用大括号括起来:

$m = clearData($_POST['msg']);
$sql = "INSERT INTO messages(message,message_from) VALUES( '$m','{$_SESSION['id']}')";

或者:

$sql = sprintf("INSERT INTO messages(message,message_from) VALUES( '%s','%d')",
  mysql_real_escape_string($_POST['msg']),
  $_SESSION['id']
);

【讨论】:

    【解决方案2】:

    你的单引号嵌套在:

    '$_SESSION['id']'
    

    将其替换为:

    "INSERT INTO messages(message,message_from)VALUES('$m','".$_SESSION['id']."')"
    

    【讨论】:

      【解决方案3】:

      试试这个:

      $m = mysqli_real_escape_string(clearData($_POST['msg'])); // escape or whatever.  
      $sessionId = mysqli_real_escape_string($_SESSION['id']); // or whatever, just escape the field
      
      $sql = "INSERT INTO messages(message,message_from) VALUES( '{$m}','{$sessionId}')";
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-13
      • 1970-01-01
      • 2016-08-17
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-02
      相关资源
      最近更新 更多