Php 如何在MYSQL数据库中存储大量文本?

Php 如何在MYSQL数据库中存储大量文本?,php,html,mysql,Php,Html,Mysql,我试图在数据库中存储大量文本,以下是我的数据库代码: CREATE TABLE entries( ID int NOT NULL AUTO_INCREMENT, title varchar(255), post TINYTEXT, timestamp int(11), poster varchar(255), upvotes int(255), PRIMARY KEY (ID) ); 当我尝试输入文本时,它给出了检查MYSQL指令的一般错误。当文本的数量是有限的,但它的工作,即使

我试图在数据库中存储大量文本,以下是我的数据库代码:

CREATE TABLE entries(
 ID int NOT NULL AUTO_INCREMENT,
 title varchar(255),
 post TINYTEXT,
 timestamp int(11),
 poster varchar(255),
 upvotes int(255),
 PRIMARY KEY (ID)
);
当我尝试输入文本时,它给出了检查MYSQL指令的一般错误。当文本的数量是有限的,但它的工作,即使我使用的类型的tinytext应该能够存储更多的信息。那么我错过了什么

这是我将信息输入数据库的代码

    if (isset($_POST["title"]) and isset($_POST["posttext"])){
        $title = $_POST["title"];
        $postText = $_POST['posttext'];
        $name = $_SESSION["name"];
        $upvotes = 0;
        date_default_timezone_set('UTC');
        $time = time();

        $sql = "INSERT INTO entries (title, post, timestamp, poster, upvotes) VALUES ('$title', '$postText', '$time', '$name', '$upvotes')";

        if ($conn->query($sql) === TRUE) {
            header("Location: ../index.php");
        } 
        else{  
            echo "Error: " . $sql . "<br>" . $conn->error;
        }
        $conn->close();

    }
if(isset($\u POST[“title”])和isset($\u POST[“posttext”])){
$title=$_POST[“title”];
$postText=$_POST['postText'];
$name=$\会话[“name”];
$UPVOLUES=0;
日期\默认\时区\设置('UTC');
$time=time();
$sql=“在条目(标题、帖子、时间戳、海报、投票)中插入值(“$title”、“$postText”、“$time”、“$name”、“$upvoces”)”;
if($conn->query($sql)==TRUE){
标题(“位置:../index.php”);
} 
否则{
echo“Error:”.$sql.“
”$conn->Error; } $conn->close(); }
任何关于使用tinytext或任何其他类型存储大量信息的帮助都会很有帮助

对于那些想知道的人,我知道可以存储在所有文本变体中的不同数据量,但即使我厌倦了所有其他选项,这仍然不能解决我的问题


感谢

除了SQL注入之外,您的文本可能没有正确转义(例如,包含一个结束引号)。@DaveS除此之外,您的意思是什么?文本不应该以任何方式转义。逃跑是相当糟糕的。如果你有未知的数据,你需要在预先准备好的查询中通过参数传递。我不相信这与结束报价有任何关系,因为我复制的所有其他文本都是一样的aswell@Dharman我同意,一旦切换到mysqli或PDO,就应该使用准备好的查询,而不是转义文本。我是说,在当前不安全的易于注入的代码中,文本不是转义的,它是从POST原始使用的:
$postText=$\u POST['postText']。小Bobby Tables赞同这段代码。除了SQL注入之外,您的文本可能没有正确转义(例如,包含结束引号)。@DaveS除此之外,您的意思是什么?文本不应该以任何方式转义。逃跑是相当糟糕的。如果你有未知的数据,你需要在预先准备好的查询中通过参数传递。我不相信这与结束报价有任何关系,因为我复制的所有其他文本都是一样的aswell@Dharman我同意,一旦切换到mysqli或PDO,就应该使用准备好的查询,而不是转义文本。我是说,在当前不安全的易于注入的代码中,文本不是转义的,它是从POST原始使用的:
$postText=$\u POST['postText']。小鲍比·泰尔斯赞同这一准则。