非持久性检查dict数组

时间:2018-05-02 08:22:32

标签: php mysql

有些奇怪的事情正在发生,我无法指出原因。

Array $ regions是区域的反向字典[regionCode => regionID。在函数parse_r()中,检查新的regionCode,如果是,则将此regionCode添加到字典中。这是添加新区域的唯一地方。但有时(可能是50个案例中的1个)新行添加了以前存在的区域名称。 regionCode是一个文本,非唯一字段。

为什么会这样,我做错了什么?

function reps() {
global $mysqli;
$regions=get_regions();
...
$status = parse_r($filename);
...
}

function get_regions() {
global $mysqli;
$regions=array();
  $sql = 'SELECT * FROM `regionCodes` ORDER BY `regionCodes`.`id` DESC';
  $res = $mysqli->query($sql);
  if( $res !== false ) { 
     while ($row = $res->fetch_assoc()) {
       $regions[$row['regionCode']]=$row['id'];
     }
  }
return $regions;
}

function parse_r($filenameFull) {
global $mysqli, $regions;
  $r['regionCode']=$ttt['regionCode'];
  if ( !(array_key_exists($r['regionCode'], $regions))  ) {
     $sql = sprintf("INSERT INTO `regionCodes`(`regionCode`) VALUES ('%s')", $mysqli->real_escape_string($r['regionCode']) );
     $res = $mysqli->query($sql);
     $regions=get_regions();
  }
  $r['regionID'] = $regions[$r['regionCode']];

0 个答案:

没有答案