PHP $ _POST在一定长度后没有插入到mysql db中

时间:2017-07-31 11:37:02

标签: php mysql

我提供了以下PHP可执行文件,该文件在提交表单后执行。

B

使用短语和数字(大约10个字符)。但是如果我想插入150个字符,它只会在表格中创建一个空行。

该表具有以下值: 类型:LongText(我只需要字母字符,没有数字)

我在syslog中看不到任何内容,没有错误。

编辑:我注意到如果输入有一个"空格/空格"无论大小如何,最终都会被张贴。

FE

这不起作用,不是假定的:"这是一个带有xxx字符的长文本"

这是有效的(输入):"这是一个带有xxx字符的长输入文本" (注意最后的空白区域)

EDIT2:我目前的php可执行文件(welcome.php)

<?php
{
mysql_connect("localhost","root","mypass");
mysql_select_db("mydb");
$myinput= $_POST['myinput'];
$result=MYSQL_QUERY("INSERT INTO mydb (myinput)".
"VALUES ('$myinput')");
mysql_close();
}
?>

这是输入数据的表格

<?php
{
mysql_connect("localhost","root","my_pass");
mysql_select_db("my_db");
$variable = mysql_real_escape_string($_POST['variable']);
$result=MYSQL_QUERY("INSERT INTO `mydb_table` (`variable`) VALUES ('".$variable."')");
mysql_close();
}
?>

2 个答案:

答案 0 :(得分:1)

如果您的表架构varchar然后我认为您的归档限制设置为10;所以更新

ALTER TABLE mydb ALTER COLUMN myinput VARCHAR (150) NULL;

如果你不想null,那么

ALTER TABLE mydb ALTER COLUMN myinput VARCHAR (150);

并更新您的查询

$myinput = mysql_real_escape_string($_POST['myinput']);    
$result=mysql_query("INSERT INTO `mydb` (`myinput`) VALUES ('".$myinput."')");

希望你能插入150,如果你想插入更多,然后更新VARCHAR长度

答案 1 :(得分:0)

我应该检查列的大小和类型。使用这个

ALTER TABLE mydb ALTER COLUMN myinput VARCHAR (255);