ざ・わーるど@はてな

気が向いた時に更新する雑記です

importForm()でのエラー

importFormで自動的にフォームの値を読み込んでSQLに登録する時に、使わない項目にNULLが入ってしまってエラーになった。

World[25801](ERR): ethna_db_pear._query(class/DB/Ethna_DB_PEAR.php:222): クエリエラー SQL[INSERT INTO news SET id='',title='勝った!第三部完!',date='2006-09-28 16:44:00',text='ひょっとして、テストですかぁぁぁぁぁぁぁぁぁ!?',check=NULL] [nativecode=1064 ** You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'check=NULL' at line 1]] [ERROR CODE(4)]


NULLが自動的に入らないようにするにはどうしたらいいんだろうと思って、ソースを読んだらオプションがありました。

OBJECT_IMPORT_IGNORE_NULL - NULLがスキップされる
OBJECT_IMPORT_CONVERT_NULL - NULLが空文字に変換される
http://ethna.jp/doc//__filesource/fsource_Ethna__classEthna_AppObject.php.html#a324


なので、OBJECT_IMPORT_IGNORE_NULLを指定したらエラーが消えました。

	$news =& new World_News($this->backend);
-	$news->importForm();
+	$news->importForm(OBJECT_IMPORT_IGNORE_NULL);
	$news->add();

とりあえずメモ。