php - 从php更新数据库信息,而不是保存

标签 php mysql

我有这段代码,它似乎可以工作。这些值正在更新,但是当我重新加载页面时,更新后的值没有任何值。例如,现在我将标题设置为“blablabla”,当我重新加载页面时,它会更改为“”。

这是代码

<?php
$title = $_POST['title']; 
$meta = $_POST['meta'];
$email = $_POST['email'];
$analytics = $_POST['analytics'];
$query = "UPDATE websettings SET title = '$title', meta = '$meta', email = '$email', analytics = '$analytics' WHERE id = '1'";
if(mysql_query($query)){ 
echo "success";
} 
else {
echo "fail";
} 
?>

最佳答案

您的代码将 $_POST 变量应用于数据库,但不检查客户端是否实际发布任何内容。最好检查 $_POST 是否包含数组项(如果已发布表单),并检查每个项是否已设置(如果用户填写了正确的字段),并在保存之前验证用户输入(电话号码、电子邮件等格式正确)。

正如评论中所指出的,您很容易受到 SQL 注入(inject)攻击 - 这是您应该解决的第一件事。

也尝试打开更多 PHP 错误 - 这些错误将标记为未设置的变量,以便更快修复。

关于php - 从php更新数据库信息,而不是保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33668044/

相关文章:

php - HTML 表单作为 get 而不是 post

MySQL查询需要优化

mysql - 使用触发器更新 MySQL 表

mysql - 一张表中相似的帐户名

mysql - 如何计算 Talend on Oracle 中连接的行数

MySQL查询JSON结果被截断

php - 最大用户连接发生错误

php - 制作具有独特格式的PHP url

php - 将特定文件夹发送到 HTTPS,并将其余文件夹从非 www 发送到 www,同时保持 Laravel 路由的其余部分正常工作?

php - mysql 列的最大长度并确保我不会使用 utf8_unicode_ci - PHP 超过该限制?