如何将LONGTEXT存储到MySql数据库

时间:2015-05-02 10:31:59

标签: php mysql

我有一个非常大的矩阵1328x1328,我试图将它的上三角形(它是对称的)存储到数据库中作为LONGTEXT。 在JavaScript中我将它序列化:JSON.stringify(matrix)(序列化字符串长度为16744056个字符)并使用ajax将其发送到服务器:

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

它没有任何问题到达PHP,但从那里我想将它保存到数据库表

u_id(INT) | matrix_json (LONGTEXT)

应该将数据发送到数据库的PHP脚本如下所示:

$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(); 

}

我尝试使用依赖于PHP文档的send_long_data,但脚本没有错误,也没有向数据库发送任何内容。

1 个答案:

答案 0 :(得分:0)

我认为问题出在旗帜上 - 必须是ib,而不是

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

可以在php文档示例中看到:http://php.net/manual/en/mysqli-stmt.send-long-data.php