Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2009-07-18 10:38:23

shizuki
Administrator
From: 西播磨
登録日: 2006-03-23
投稿: 900
ウェブサイト

Re: Nucleus ver.3.5 でのプラグインAPIの変更について

次期バージョンのNucleusCMS v350では、データベースの操作に関して大きな変更があります。
これまで通りmysql関数のみを使用してMySQLのデータベースを使う場合には特に問題はありませんが、v350から新しいグローバル関数が追加され、この関数を使用することでPDOを介してのデータベース操作が出来るようになります。
方法はいたって簡単で、これまでプラグイン内で使用していた「mysql_fetch_object」等の「mysql_」で始まる関数を「sql_」に書き換えるだけで、PDOを使用した関数が呼び出されるようになります。
しかし、コア内部において使用されているmysql関数との互換性の関係上、いくつかの関数は使用時に注意が必要になります。

  • sql_fetch_array
    この関数は、第2引数に何を指定していてもBOTH戻り値はBOTHになります。
    ASSOCやNUMを指定したい場合は「sql_fetch_assoc」や「sql_fetch_num」への書き換えが必要になります。

  • sql_fetch_field
    この関数は、第2引数を渡さずに実行されると、「0」が渡されたものとして処理がされます。
    「mysql_fetch_field」のデフォルトの動きを期待する場合は、ループの時に必ず第2引数を指定してください

  • sql_field_name
    「sql_fetch_field」と同じく、第2引数を渡さずに実行されると、「0」が渡されたものとして処理がされます。
    「mysql_field_name」のデフォルトの動きを期待する場合は、ループの時に必ず第2引数を指定してください

また、「mysql_escape_string()」に対応する「sql_escape_string()」は定義されていませんので、この場合は「mysql_real_escape_string()」に書き換えなければなりません。
他にもいくつかの関数が、未実装だったり実装予定なしだったりします。ぜひ「/nucleus/libs/sql/」内のファイルを一読してください。

オフライン

Board footer