我想更新mysql数据库中的文本字段,但是在运行查询时它不会更改。我试过剥离特殊字符,但它仍然无效。
UPDATE:返回以下错误:它出现以下错误:
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近'datatext ='LET OP! Aantal Mate'在第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(tablename = table)
datanr = int(6)
order = text utf8_general_ci
答案 0 :(得分:1)
文本区域不应该受到责备。你的sql引用了你的表似乎没有的列名。
您的架构有datanr
和order
,而更新查询有datanr
和datatext
。
更多提示:
mysql
,而是使用mysqli,pdo或者更好,data access layer 答案 1 :(得分:0)
尝试检查密钥是否存在而不是空
if (array_key_exists('nr', $_POST)) {
$change_text = $_POST['text'];
$change_nr = $_POST['nr'];
mysql_query("UPDATE table SET datatext='$change_text' WHERE datanr='$change_nr'");
}
答案 2 :(得分:0)
调试代码
var_dump($_POST);
$change_text = $_POST['text'];
$change_nr = $_POST['nr'];
if ((!empty($change_text))&&(!empty($change_nr)))
{
$sqlString = "UPDATE table SET datatext='$change_text' WHERE datanr='$change_nr'";
var_dump($sqlString);
mysql_query($sqlString) or die(mysql_errno() . " " . mysql_error());
}
答案 3 :(得分:0)
您的表单缺少&lt; input type =“submit”/&gt;。如果没有提交按钮,则无法提交表单(和数据)。
答案 4 :(得分:0)
哈哈!我知道这个问题!这是查询。您必须在列名称周围使用这些特殊引号。像这样:mysql_query(&#34; UPDATE表SET datatext
=&#39; $ change_text&#39; WHERE datanr =&#39; $ change_nr&#39;&#34;);
注意`引用aound datatext。现在你的脚本应该工作了。如果它没有,我将关闭我的电脑立即上床睡觉lol
答案 5 :(得分:0)
您的查询应该是这样的:
mysql_query("UPDATE table SET datatext='".$change_text."' WHERE datanr=".$change_nr);