我有问题,使这个查询工作:
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上的答案来了解更多关于字符串中花括号的用法。
- 使用一个包含查询的变量总是一个好主意,这样您就可以验证正在执行的确切查询
:
$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子句,
addmysql_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]."'");
希望这能解决你的问题