php _get_id将null放在数据库中

时间:2014-05-21 07:51:01

标签: php

我有这个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> 
然后,某些东西会把“语言”表放入奇怪的值。

我希望我说的一切都是必要的。

0 个答案:

没有答案