MySQL文本数据类型太多了?

时间:2014-01-29 20:22:02

标签: php mysql mysqli

我有大约200个字符,我试图在数据类型longtext下插入我的数据库,我也试过普通文本。

使用longtext可以让我更加适合,但是当我尝试键入大约200个字符时,根据MySQL错误显示它太长了。

我不确定这是如何工作的,因为LONGTEXT可以存储多达4GB的字符。

结构:

enter image description here

如果您需要任何其他信息,请与我们联系!

顺便使用来自POST数据的MySQLi查询插入数据库。

错误:

enter image description here

查询:

$q = $mysqli->query("INSERT INTO `lunar_casino`.`posts`(`id`, `by`, `title`, `message`, `image`, `category`, `date`) VALUES(NULL, '$user', '$title', '$message', '$image', '$category', NOW())");
if(!$q){
   echo "<font color='red'><b>There has been an error with our database! Please contact the website administrator!</b></font><br /><br />";
   echo $mysqli->error;
} else {
   echo "<font color='green'><b>You have successfully added a blog post!</b></font><br /><br />";
}

1 个答案:

答案 0 :(得分:2)

这与大小无关,你有一个SQL错误。您没有正确使用prepared statements,并且似乎在查询中逐字粘贴数据。

您可以通过实际的SQL错误来判断:

  

“......正确的语法靠近'我没有......”。

'字符搞砸了查询。

要正确修复,请使用预准备语句:

$stmt = $mysqli->prepare("INSERT INTO `lunar_casino`.`posts` (`id`, `by`, `title`, `message`, `image`, `category`, `date`) VALUES(NULL, :user, :title, :message, :image, :category, NOW())");
$stmt->bind_param(":user", $user);
$stmt->bind_param(":title", $title);
...etc...

$stmt->execute();