我有这个PHP脚本:
private function _insert_options($veh_id,$id,$lang,$option,$price='',$cur='',$extra){
global $db;
$query = sprintf("INSERT INTO `".TBL_OPTIONS."` SET `veh_id`='%d',`opt_id`='%s',`lang`='%s',`text`='%s',`price`='%d',`cur`='%d',`extra`=%s",
$veh_id,
mysql_escape_string($id),
$this->_get_id(TBL_LANGUAGE,'lang',$lang),
mysql_escape_string($option),
mysql_escape_string($price),
$this->_get_id(TBL_CURRENCY,'cur_symbol',$cur),
($extra ?$extra :'NULL')
);
//echo '<br>insert: '.$query;
$db->insert($query,__FILE__,__LINE__);
//echo '<br>veh id '. $db->insert_id();
}
问题是,当scirpt在XML中找不到“en”文本时,脚本会在“语言”表中放入一些奇怪的值。像id = 255234,name = NULL,lang为空。
语言表包括id,name和lang字段。
XML文件包含以下行:
<option_price unit="LTL">1932</option_price>
<option_text lang="et">xxxxx</option_text>
<option_text lang="en">xxxxx</option_text>
<option_text lang="lt">xxxxx</option_text>
但是当XML文件有行时:
<option_price unit="LTL">1932</option_price>
<option_text lang="et">xxxxx</option_text>
<option_text lang="en-us">xxxxx</option_text>
<option_text lang="lt">xxxxx</option_text>
然后,某些东西会把“语言”表放入奇怪的值。
我希望我说的一切都是必要的。