php5あたりから追加されたmysqliで大容量ファイルをアップロードするときなどprepare_statementを使って、パケットを分割してmysqlのblobなどにデータをinsertする。
$mysqli = new mysqli("localhost", "user", "password", "データベース");
mysql接続エラー
echo mysqli_connect_errno();
$mysqli->query($sql);
$stmt = $mysqli->prepare($query)) {
$result = $stmt->execute();
while ($row = mysql_fetch_assoc($result)) {
echo $row["name"];
}
blob のサイズが
max_allowed_packet を越えてしまう場合
$stmt = mysqli_prepare($db,$sql);
$null = NULL;
$stmt->bind_param(“b”, $null);
$fp = fopen($_FILES[“userfile”][“tmp_name”], “rb”);
while (!feof($fp)) {
$stmt->send_long_data(0, fread($fp, 8192));
}
fclose($fp);
mysqlエラーecho
$stmt->error;