MySQL不会使用textarea更新文本字段

时间:2012-11-13 09:09:00

标签: php mysql textarea

我想更新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

6 个答案:

答案 0 :(得分:1)

文本区域不应该受到责备。你的sql引用了你的表似乎没有的列名。

您的架构有datanrorder,而更新查询有datanrdatatext

更多提示:

  1. 不要使用mysql关键字作为列名或表名,或者如果必须的话,至少使用`backticks`来转义它们。
  2. 始终验证/清理您的用户输入
  3. 不要使用mysql,而是使用mysqlipdo或者更好,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);