如何在sql数据库中保存很长的文本

问题描述 投票:1回答:2

我正在尝试建立会议纪要网站,其中会议纪要是针对用户进行记录的,我的问题是会议纪要文本可能非常长,大于sql LONGTEXT数据类型,我该如何存储这么长的文本在数据库中?如果可能,可以将其分解为数组吗?

这是我的代码。

 <?php
   $subject = $location = $date = $starttime = $endtime = "";

    if ($_SERVER["REQUEST_METHOD"] == "POST")
        {   
           $subject = $_POST["subject"]; 
           $location = $_POST["location"];
           $date = $_POST["date"];
           $starttime = $_POST["starttime"];
           $endtime = $_POST["endtime"];
           $email = $_POST["email"];
           $orignal_minutes = $_POST["Oriminutes"];
           $edited_minutes = $_POST["Ediminutes"];
           }


          if($_POST['submit'] != "" )
          {      
         $tablename = "WM_".$subject;     

        $createTable = "CREATE TABLE `$tablename`(
        id INT(6) UNSIGNED AUTO_INCREMENT KEY, 
        subject VARCHAR(50) NOT NULL, date VARCHAR(20) NOT NULL, location VARCHAR(100) NOT NULL, 
        starttime VARCHAR(10) NOT NULL, endtime VARCHAR(10) NOT NULL, email VARCHAR(255) NOT NULL,
        minutes VARCHAR(MAX) NOT NULL )";

        if (mysqli_query($conn, $createTable)){
        echo "Table `$tablename` created successfully";}
        else{ echo "Error creating table: " . mysqli_error($conn); }

        $sql = "INSERT INTO `$tablename` (id, subject, date, location, starttime, endtime, email, minutes )
                VALUES (DEFAULT,'$subject','$date','$location', '$starttime' ,'$endtime', '$email','$orignal_minutes')";
        mysqli_query($conn,$sql);



          }
php html database mysqli
2个回答
10
投票

如果要保存很长的文本,请考虑将文本保存到txt文件或其他内容,然后将文件名/路径保存到DB中。

如果要显示它,只需使用DB作为对该文件的引用并获取它。


0
投票

如果文本的长度超过varchar的最大值,则应使用Clob(字符大的对象)。它们适用于大多数(如果不是全部)数据库类型。

© www.soinside.com 2019 - 2024. All rights reserved.