PHP / MySQL更新查询问题


PHP / MySQL update query problems

我有问题,使这个查询工作:

if(isset($_POST['updateRecord'])) {
    mysql_query("UPDATE files SET title = '$_POST[title]', description = '$_POST[description]', internal = '$_POST[accessFile]', category = '$_POST[category]' WHERE title = '$_POST[title]'");
    header("Location: system-management.php?viewFiles=on");
}

当标题被重定向到正确的页面时,它肯定是在输入if语句。我已经将表单提交设置为使用post方法,即使我使用get方法,我也可以看到我的表单数据正在传递。

我已经尝试在查询上引用标头位置和错误报告(或死亡),但它没有带来任何错误

表单提交按钮位于表列内,如下所示:

<input type='submit' value='Save Changes' name='updateRecord' />

有什么很明显的东西我在这里错过了吗?

必须使用大括号,如下所示

mysql_query("UPDATE files SET title = '{$_POST[title]}', 
    description = '{$_POST[description]}', internal = '{$_POST[accessFile]}', 
    category = '{$_POST[category]}' WHERE title = '{$_POST[title]}'");

大括号用于转义变量表达式。请参阅PHP文档中的字符串。你也可以参考stackoverflow上的答案来了解更多关于字符串中花括号的用法。

  1. 使用一个包含查询的变量总是一个好主意,这样您就可以验证正在执行的确切查询

:

$query = "UPDATE files SET title = '"{$_POST['title']}'", description = '"{$_POST['description']'", internal = '"{$_POST['accessFile']'", category = '"{$_POST['category']'" WHERE title = '"{$_POST['title']'"";
// echo $query;
mysql_query($query);

假设IF正常工作,问题似乎在于从$_POST读取变量的方式。变量名应该用引号括起来。请试试这个:

mysql_query("UPDATE files SET title = '" . $_POST['title'] . "', description = '" . $_POST[description] . "', internal = '" . $_POST[accessFile] . "', category = '" . $_POST[category] . "' WHERE title = '" . $_POST[title] . "'");

希望这对你有帮助!

试着为你的提交按钮添加一个id, id="whatever"

我没有看到mysql_query($query,$connection);的第二个参数,你的连接字符串不存在

检查WHERE子句,

add mysql_query("",$con) or die(mysql_error());

Try This

 mysql_query("UPDATE files SET title = '".$_POST[title]."', description = '".$_POST[description]."', internal = '".$_POST[accessFile]."', category = '".$_POST[category]."' WHERE title = '".$_POST[title]."'");

希望这能解决你的问题