我无法将数据添加到SQL记录中

时间:2017-02-20 07:07:08

标签: php mysql

我正在尝试使用以下代码将数据添加到Mysql数据库:

$sql = mysql_query("UPDATE members SET name = '$name' WHERE id = '$_SESSION['username']' ");

但是当我跑步时,我收到以下错误:

  

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

我做错了什么?

2 个答案:

答案 0 :(得分:2)

像这样使用:

mysqli_query($connection,"UPDATE members SET name = '.$name.' WHERE id = ".$_SESSION['username']);

答案 1 :(得分:1)

如何解决当前问题

为了修复这个,您必须修复此部分:'$_SESSION['username']'。因为正如你所看到的那样你是'的双重字符串(这是我能解释的最好的)。因此,您需要将查询更改为此类内容。

$sql = mysql_query("UPDATE members SET name = '$name' WHERE id = ".$_SESSION['username']);

<小时/> 警告

您应该再使用mysql_个功能! 为什么?阅读this关于它的问题,你真的不应该再使用它了。

如何正确地进行mysql

现在,您应该使用什么?了解如何使用PDO mysqli_,您可以了解PDO heremysqli_ here

在此期间,您还应该了解sql injection是什么,这是让您的项目更安全,更好的下一步。阅读所有关于here的内容,其中有一些很好的例子和解释。

最后,这是一个如何使用mysqli

的示例
$conn = new mysqli($servername, $username, $password, $dbname);

$stmt = $conn->prepare(UPDATE members SET name =? WHERE id =?);
$stmt->bind_param("ss", $name, $id);

$name = "Nytrix";
$id = $_SESSION['username'];
$stmt->execute();

$stmt->close();
$conn->close();

准备这样的语句,并在稍后阶段绑定值会消除sql injection的风险。

我希望这有助于你澄清一下mysql的主题。