2016-03-04 6 views
0

Мой код выглядит так:Как избежать одиночных кавычек С mysqli_real_escape_string?

Мой массив города (echo '<pre>';print_r($city);echo '</pre>';die();):

Array 
(
    [0] => Array 
     (
      [CityCode] => 14879 
      [CityName] => Soldeu 
     ) 

    [1] => Array 
     (
      [CityCode] => 14881 
      [CityName] => Ari'nsal 
     ) 

    [2] => Array 
     (
      [CityCode] => 14882 
      [CityName] => El Tarter 
     ) 

    [3] => Array 
     (
      [CityCode] => 14883 
      [CityName] => Grau Roig 
     ) 

    [4] => Array 
     (
      [CityCode] => 175198 
      [CityName] => Llorts 
     ) 

) 

В код города: 14881, название города: Ari'nsal

Это одинарные кавычки в строке.

Стараюсь такой код:

$date = date('Y-m-d H:i:s'); 

      $sql = "INSERT INTO hotel_search_city (nation_code, city_code, city_name, created_at, updated_at) values "; 

      $valuesArr = array(); 
      foreach($city as $row){ 

       $nation_code = $value->nation_code; 

       $city_code = $row['CityCode']; 
       $city_name = mysqli_real_escape_string($row['CityName']); 
       $created_at = $date; 
       $updated_at = $date; 

       $valuesArr[] = "('$nation_code', '$city_code', '$city_name', '$created_at', '$updated_at')"; 
      } 

      $sql .= implode(',', $valuesArr); 

      $query = $sql; 
      $this->db->query($query); 

Там существует ошибка, как это: Сообщение: mysqli_real_escape_string() ожидает, что именно 2 параметра, 1, данные ....

Любое решение, чтобы решить мою проблему?

Большое спасибо

+0

Если вы не используете объектно-ориентированный синтаксис, то вам необходимо обеспечить соединение: 'mysqli_real_escape_string ($ this-> дб , $ row ['CityName']). Еще лучше, не используйте 'mysqli_real_escape_string', но PDO и подготовленные операторы. – Amadan

+0

Я пытаюсь: mysqli_real_escape_string ($ this-> db, $ row ['CityName']). Есть ошибка: Сообщение: mysqli_real_escape_string() ожидает, что параметр 1 будет mysqli, данный объект –

+0

Я вижу. Затем попробуйте '$ this-> db-> mysql_real_escape_string ($ row ['CityName']). – Amadan

ответ

0
$date = date('Y-m-d H:i:s'); 
$sql = "INSERT INTO hotel_search_city (nation_code, city_code, city_name, created_at, updated_at) values (?, ?, ?, ?, ?)"; 

foreach ($city as $row) { 
    $nation_code = $value->nation_code; 
    $city_code = $row['CityCode']; 
    $city_name = $row['CityName']; 
    $created_at = $date; 
    $updated_at = $date; 

    $fields = array($nation_code, $city_code, $city_name, $created_at, $updated_at); 
    $this->db->query($query, $fields); 
} 

или

$date = date('Y-m-d H:i:s'); 

foreach ($city as $row) { 
    $fields = array(
     'nation_code' => $value->nation_code, 
     'city_code' => $row['CityCode'], 
     'city_name' => $row['CityName'], 
     'created_at' = $date, 
     'updated_at' = $date 
    ); 

    $this->db->insert('hotel_search_city', $fields); 
} 
+0

Мне нужна помощь. Смотрите здесь: http://stackoverflow.com/questions/38175735/how-to-get-data-in-function-extend-controller –

Смежные вопросы