如何将LONGTEXT存储到MySql数据库

I have a very large matrix 1328x1328 and I'm trying to store the upper triangle (it is symmetrical) of it to the database as LONGTEXT. In JavaScript I serialize it: JSON.stringify(matrix) (serialized string length 16744056 characters) and send it to the server using ajax:

$.ajax({
      type: "PUT",
      url: 'post-user-matrix.php',
      data: JSON.stringify(matrix),
      contentType: "application/json"
    });

It arrives to PHP with no problems, but from there I want to save it to the database table

u_id(INT) | matrix_json (LONGTEXT)

The PHP script that should send the data to the database look like this:

$user_id = getUserID();
$matrix = file_get_contents("php://input");

if ($insert_stmt = $mysqli->prepare("INSERT INTO users_matrix (u_id, matrix_json) VALUES (?,?)")) {
    $null = NULL;
    $insert_stmt->bind_param('is',$user_id, $null);

    $matrixchunks = str_split($matrix, 8192);

    for ($i=0 ; $i < count($matrixchunks) ; $i++) {
        $insert_stmt->send_long_data(1, $matrixchunks[$i] );
    }

    $insert_stmt->execute(); 

}

I tried to use send_long_data relying on PHP documentation, but the script gives no errors and doesn't send anything to the database.

duanhui3759
duanhui3759 使用error_reporting(E_ALL);ini_set('display_errors',1);它应该显示错误。也尝试用ib,仍然没有。可能是max_post_size,但是不应该发送较小的块来解决这个问题?
5 年多之前 回复
dongzhucha3999
dongzhucha3999 这里-$insert_stmt->bind_param('是',$user_id,$null);替换是由ib,因为它是blob数据,而不是字符串-标志是b不是s
5 年多之前 回复
dongtiao0657
dongtiao0657 这几乎可以肯定是max_post_size问题stackoverflow.com/questions/6135427/...
5 年多之前 回复
duanpie2834
duanpie2834 你有PHP错误吗?
5 年多之前 回复

1个回答

I think the problem is in flags - has to be ib, not is

 $insert_stmt->bind_param('ib',$user_id, $null);

It can be seen on php documentation sample here: http://php.net/manual/en/mysqli-stmt.send-long-data.php

douxing2156
douxing2156 显然它达到了最大执行时间,最初没有出现在错误中。
5 年多之前 回复
doucai9270
doucai9270 在PHP文档中写入 - TEXT或BLOB
5 年多之前 回复
dqfkd82886
dqfkd82886 它是LONGTEXT,它应该是BLOB吗? 我使用了longtext,因为我正在保存一个字符串。
5 年多之前 回复
duanbangzhou7809
duanbangzhou7809 好的,但是matrix_json列的类型是什么?
5 年多之前 回复
doucan4815
doucan4815 遗憾的是,没有给出不同的结果。
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐