首页 > 解决方案 > PHP mysqli,最大参数长度

问题描述

我正在开发一个用户可以上传文件的网络应用程序,然后我从该文件中获取原始数据:

$_fileData = file_get_contents("php://input");

并将其存储在我的数据库中:

$sql = "INSERT INTO connectivity_files (fileData, senderToken, referenceToken) VALUES (?, ?, ?)";
if ($stmt = $conn->prepare($sql))
{
    $stmt->bind_param("sss", $_fileData, $_senderToken, $_referenceToken); 
    $stmt->execute(); 
    var_dump($stmt);
    $stmt->close();
    return true;
}

$_fileData 变量可以很长(strlen() 返回例如 5519825)

fileData 存储为 LONGTEXT,最长可达 4294967295 字节,这有点奇怪,因为当我上传一个较小的文件(最大 1 MB,这个文件为 5.5MB)时,它确实有效。(TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT 最大存储大小

该查询不返回某种错误,(当我 var_dump 它返回这个:)

object(mysqli_stmt)#6 (10) {
  [\"affected_rows\"]=>
  int(1)
  [\"insert_id\"]=>
  int(19)
  [\"num_rows\"]=>
  int(0)
  [\"param_count\"]=>
  int(3)
  [\"field_count\"]=>
  int(0)
  [\"errno\"]=>
  int(0)
  [\"error\"]=>
  string(0) \"\"
  [\"error_list\"]=>
  array(0) {
  }
  [\"sqlstate\"]=>
  string(5) \"00000\"
  [\"id\"]=>
  int(1)
}

我完全迷路了,非常感谢您的帮助!

编辑由于可能重复,

我不认为 PHP 方面的内存是问题,否则我无法正确获取最后一个字符或字符串的 strlen。

标签: phpstringmysqli

解决方案


推荐阅读