Php / sql更新仅在cookie是数字时才起作用,而不是在它的文本时

时间:2014-01-06 23:38:52

标签: php mysql cookies

第一次在这里发帖。

我使用php / mysql是非常新的(第一天)。我已经设法编写了一些显示数据库中的值的内容但是我在允许用户编辑该值时遇到了一些麻烦。我有一个表单显示数据库中的当前值(所有varchars)然后允许他们编辑它然而当我按提交它只实际更新它正确如果在SQL中使用的cookie“用户名”包含数字不当它的文字......

mysqli_query($con,"UPDATE Customers SET password='".$_POST[password]."' WHERE email=$_COOKIE[username]");

如果cookie [用户名]包含123,它将允许我更新与其相关的其他字段,如“名称”/“地址”等正确

但是如果cookie [用户名]包含任何文本,例如“hi”或“food123”,一旦按下提交,它将保持不变,我不知道为什么......

有谁知道出了什么问题,为什么它适用于数字而不适用于文本?另外我不介意你是否可以愚蠢地提供任何帮助,因为我会因任何复杂程度而迷失...如果你需要任何关于我的问题的其他信息,请告诉我,谢谢你的帮助。< / p>

1 个答案:

答案 0 :(得分:0)

也许这有帮助:

mysqli_query($con,"UPDATE Customers SET password='" . $_POST['password'] . "' WHERE email='" . $_COOKIE['username'] . "'");

我只是添加单引号,以便查询可以将$ _COOKIE [username]读作字符串,这样就可以接受数字或文本。

请注意,使用此代码时,您的应用可能会遇到SQL injection