我想更新 mysql 数据库中的文本字段,但当我运行查询时它没有改变。我尝试过删除特殊字符,但仍然不起作用。
更新:它返回以下错误:它给出以下错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'datatext='LET OP! Aantal Mate' at line 1
这是数据:
HTML
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<input type="hidden" name="nr" value="1">
<textarea rows="20" cols="50" name="text"></textarea>
</form>
PHP
$change_text = $_POST['text'];
$change_nr = $_POST['nr'];
if ((!empty($change_text))&&(!empty($change_nr)))
{
mysql_query("UPDATE table SET datatext='$change_text' WHERE datanr='$change_nr'");
}
结构MySQL(表名=表)
datanr = int(6)
order = text utf8_general_ci
最佳答案
文本区域不应该受到指责。您的 sql 引用了您的表似乎没有的列名。
您的架构具有 datanr
和 order
,而更新查询具有 datanr
和 datatext
。
更多提示:
- 不要使用 mysql 关键字作为列名或表名,或者如果必须的话,至少使用“反引号”对其进行转义。
- 始终验证/清理您的用户输入
- 不要使用
mysql
,而是使用mysqli , pdo或者更好的是,一个好的data access layer
关于php - MySQL 不使用 textarea 更新文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13357995/