0

このメソッドを使用して、最後に挿入された ID を取得しています。

$this->db->insert_id();

たとえば、データベースに挿入された ID は 000055 ですが、この関数は 55 しか返しません。完全な無署名ゼロフィル ID を取得するにはどうすればよいですか?

4

2 に答える 2

0

ID のゼロが埋められているのはなぜですか? 1 を返すと問題が発生する可能性があります。これは、ゼロで埋められた int ではなく 2 進数であると見なされるためです。まれにヘックスになる可能性さえあります。アプリケーション用に ID のゼロを埋めたいだけの場合は、それをビューにレンダリングするときにライブラリまたはヘルパーで処理します。これは、PHP は型付けが緩いため、ビット比較を行っているか、16 進数またはバイナリを扱っていると考える可能性があるためです。 int.

本当にこれを行いたい場合は、CI_DB_mysqli_driver (または使用している任意の db ドライバー) を拡張し、insert_id() を上書きし、それが文字列を返すことを確認してから、常に文字列として扱うようにする必要があります。それでも、ゼロで満たされた整数でロジックを実行しないことを強くお勧めします。

于 2013-04-03T22:05:59.697 に答える