Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么在尝试向数据库输入超过500个字符时会出现错误?_Php_Mysql_Textarea - Fatal编程技术网

Php 为什么在尝试向数据库输入超过500个字符时会出现错误?

Php 为什么在尝试向数据库输入超过500个字符时会出现错误?,php,mysql,textarea,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>"; ?&g

我在数据库中有项目,但为什么当我试图从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>";
?>
然后我尝试(更新或添加)记录

导入时出错,更新时未生效

这是我的更新查询

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之外,其他一切都很好。您如何设置
ProductDesc
字段?是
varchar
mediumtext
longtext
?我总是使用
长文本
,而且我从来没有遇到过超过500个字符的问题。发布表单后,在将其提交到数据库之前,可能需要从描述中删除一些字符

还有一个小嗝:D

而不是

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

使用

在查询之前添加

$a4 = mysql_real_escape_string($a4);
事实上,您应该对进入查询的任何用户指定的值调用此函数。您不仅可以产生错误,例如您所看到的错误,而且还可以将描述指定为

'; DROP TABLE product; -- 

那你就真的有麻烦了。这就是众所周知的错误,您应该非常小心。

您忘记了错误。最有可能的是,字符#501是一个单引号;查看与您的MySQL服务器版本对应的手册,了解使用near“新发现的教师角色帮助他接受动荡的过去”的正确语法,'在第1行,但关键是当我从PHPMyAdmin编辑产品详细信息时,它可以工作,但是文本区域我不能更改它,除非它很小。表单中的其他字段可以工作。发布数据有限制吗??表单的操作是相同的页面,方法是post,但如果我测试的字符数少于200,则一切都正常,但我应该存储大量数据,我现在使用的是“longtext”,但仍然相同,我无法编辑大文本,但小文本我可以请你解释更多,请看我现在添加的问题中的表格,也许这就是问题所在??请您简单地解释一下SQL注入,您的
表单
标记没有问题(尽管指定
enctype
是不必要的)。当您在查询中包含用户输入而不首先转义任何特殊字符(如引号和反勾号)时,就会发生SQL注入。当这种情况发生时,您将打开一扇门,让用户在您的服务器上执行任意SQL语句,方法是断开任何引号,如我上面介绍的示例所示。如果这是正确转义的,那么我指定的描述将变成
\;升降台产品;——$a4 = mysql_real_escape_string($a4);
'; DROP TABLE product; --