この種の質問を投稿するのに適切な場所かどうかはわかりません。そうでない場合は、(丁寧に)お知らせください... :-)
PHP サイトから mysql データベースに 16MB を超えるファイルを保存する必要があります...
私はすでに c:\xampp\mysql\bin\my.cnf を変更しました
max_allowed_packet を 16 MB に設定すると、すべてが正常に機能しました
それから 32 MB に設定しましたが、16 MB を超えるファイルを処理する方法がありません。
次のエラーが表示されます。
「MySQL サーバーがなくなりました」
(max_allowed_packet が 1MB に設定されたときに発生したのと同じエラー)
16MB を超えるファイルを処理できない設定が他にあるはずです
おそらくphpクライアントだと思いますが、どこを編集すればよいかわかりません
これは私が実行しているコードです
file.txt が 16.776.192 バイトよりも小さい場合は問題なく動作しますが、
file.txt に 16.777.216 バイトがある場合、前述のエラーが発生します
ああ、フィールド download.content は longblob です...
$file = 'file.txt';
$file_handle = fopen( $file, 'r' );
$content = fread( $file_handle, filesize( $file ) );
fclose( $file_handle );
db_execute( 'truncate table download', true );
$sql =
"insert into download(
code, title, name, description, original_name,
mime_type, size, content,
user_insert_id, date_insert, user_update_id, date_update )
values (
'new file', 'new file', 'sas.jpg', 'new file', '$file',
'mime', " . filesize( $file ) . ", '" . addslashes( $content ) . "',
0, " . db_char_to_sql( now_char(), 'datetime' ) . ", 0, " . db_char_to_sql( now_char(), 'datetime' ) . " )";
db_execute( $sql, true );
(db_execute 関数は、接続を開いて SQL を実行するだけです)
Windows XP SP2 サーバー バージョンで実行: 5.0.67-community PHP バージョン 4.4.9 mysql クライアント API バージョン: 3.23.49
使用: ApacheFriends XAMPP (Basispaket) バージョン 1.6.8 + Apache 2.2.9 + MySQL 5.0.67 (Community Server) + PHP 5.2.6 + PHP 4.4.9 + PEAR + phpMyAdmin 2.11.9.2 ...
これは c:\xampp\mysql\bin\my.cnf の内容の一部です
# MySQL サーバー [mysqld] ポート= 3306 ソケット = "C:/xampp/mysql/mysql.sock" basedir="C:/xampp/mysql" tmpdir="C:/xampp/tmp" datadir="C:/xampp/mysql/data" スキップロック key_buffer = 16M # max_allowed_packet = 1M max_allowed_packet = 32M テーブルキャッシュ = 128 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M