为什么当尝试导入数据库超过500 char我得到错误?

时间:2011-07-03 16:30:06

标签: php mysql textarea

我有数据库中的项目,但为什么当我尝试从textarea导入超过500个字符时我有错误,该字段的数据类型是TEXT

这是表格的一部分

<?php 
//query to get the $ProductDesc and some other codes then
echo "<textarea name='p_desc' id='p_desc' class='input' rows='10' cols='53'>$ProductDesc</textarea>";
?>

然后在同一页面中的表单发布,然后我得到这样的值:

$a4 = $_REQUEST['p_desc'];

然后我试图(更新或添加)记录,

我在导入时出错,并且在更新时没有生效

这是我的更新查询

mysql_query("UPDATE product SET ProductDesc='$a4' WHERE ProductID = $productID ");

请帮助并感谢高级,PHP中的错误或什么?

表单标题:

<form name="myform" action="add-product.php" method="post" enctype="multipart/form-data">

我正在使用enctype =“multipart / form-data”因为我上传的图片也很好,除了textarea

2 个答案:

答案 0 :(得分:0)

您如何设置ProductDesc字段?它是varcharmediumtextlongtext?我总是使用longtext,我从来没有遇到超过500个字符的任何问题。发布您的表单,也许您需要在将描述提交到数据库之前从描述中删除一些字符。

那里有一点打嗝:D

而不是

<?php 
//query to get the $ProductDesc
<textarea name='p_desc' id='p_desc' class='input' rows='10' cols='53'>$ProductDesc</textarea>
?>

使用

<?php 
//query to get the $ProductDesc
echo "<textarea name='p_desc' id='p_desc' class='input' rows='10' cols='53'>".$ProductDesc."</textarea>";
?>

并修复更新或添加函数重写它以便检查它是否已经存在,然后在if语句中添加查询或更新函数。

当你点击表单上的提交时,你现在有什么错误告诉你?!?

答案 1 :(得分:0)

在您的查询之前添加

$a4 = mysql_real_escape_string($a4);

实际上,您应该在进入查询的任何用户指定的值上调用此函数。您不仅可以产生错误,例如您所看到的错误,还可以将描述指定为

'; DROP TABLE product; -- 
那时你真的遇到了麻烦。这被称为SQL injection,你应该非常小心。