prepare () vs query () mysqli

Я пытаюсь понять разницу между запросами mysqli () и prepare (). У меня есть код, как показано ниже, и я хотел бы получить одинаковые результаты от обоих. Однако prepare () не работает должным образом. Зачем?

  // this works

  if ($query = $this->db->query("SELECT html FROM static_pages WHERE page = 'cities'")) {

     $result = $query->fetch_row();
     echo $result[0];

  $query->close();

  }

  //this does not work
  //result is empty

     $cities = 'cities';

     $stmt = $this->db->prepare("SELECT html FROM static_pages WHERE page = ?");
     $stmt -> bind_param("s", $cities);
     $stmt->execute();
     $stmt->bind_result($result);
     $stmt->fetch();
     echo $result;
     $stmt->close();

     $this->db->close();

это мои настройки сервера в соответствии с запросом:

ОС

Vista 64bit / PHP Версия 5.2.9

mysqli

Поддержка MysqlI включена

Клиентская библиотека API версия 5.0.51a

Клиент Версия заголовка API 5.0.51a

MYSQLI_SOCKET /tmp/mysql.sock

Directive Локальное значение Master Value

mysqli. default_host нет значения нет значения

mysqli.default_port 3306 3306

mysqli.default_pw нет значения нет значения

mysqli.default_socket нет значения нет значения

mysqli.default_user нет значения нет значения

mysqli.max_links Не ограничено Неограниченный

mysqli.reconnect Выкл. Выкл.

5
задан Mike 24 August 2010 в 21:37
поделиться