1

私はどこでも検索してきましたが、問題の解決策が見つかりません。smf や wordpress などの他の場所で使用した php クラスを codeigniter ライブラリに変換しようとしています。現時点で唯一の問題は、データをデータベースに送り返すことです。この問題の理由は、返されるデータの量が php.ini ファイルに設定されているパック サイズを超えているためです。また、後で他の人に移行または配布する必要がある場合に問題が発生するため、ini ファイルを変更したくありません。使用する。だから私が必要とするのは、CodeIgniter に相当するものです...

// Send XML data in 8196 block chunks
$start=0;

// The XML data may be large in size, so we need to
// send the data in chunks to the MySQL driver to not
// exceed the max packet size for MySQL.
while ($start < strlen($xml))
{
    $end = $start + 8192; 
    if ($end > strlen($xml)) $end = strlen($xml);
    $statement->send_long_data(3,substr($xml,$start,$end-$start));
    $start = $end;
}
$start=0;
while ($start < strlen($xml))
{
    $end = $start + 8192;
    if ($end > strlen($xml)) $end = strlen($xml);
    $statement->send_long_data(4,substr($xml,$start,$end-$start));
    $start = $end;
}
$statement->execute();

問題を send_long_data に絞り込みました。ファイル内の他のすべてを既に変更しており、美しく動作します。CodeIgniter 内で最大パケット サイズを正しく処理する適切な方法を知っている人はいますか?

4

1 に答える 1

1

私の問題が見つかりました。テーブルはデフォルトで MyISAM になり、InnoDB である必要がありました。

他の人への参照のために、これを変更するためのSQLコマンドは

ALTER TABLE `tablename` ENGINE = InnoDB;
于 2013-06-08T03:12:52.327 に答える