[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вызов хранимых процедур
alexbel2404
Делаю для своего сайта синонимайзер, есть метод:

protected function synonymizeWord($word) {
$word = trim($word);
if (mb_strlen($word, 'UTF-8') > 3) {
$query = "CALL synonymizeWord('" . $this->db->real_escape_string($word) . "')";
$syn = $this->db->query($query) or die("<br />MySQL Error Code: " . $this->db->errno . " " . $this->db->error . "; <b>Запрос:</b> ". $query ."");
$this->next_result();
if ($syn->num_rows != null) {
if($tmp = $syn->fetch_assoc()){
$result = $tmp['word'];
}
return $result;
}
return $word;
} else {
return $word;
}
}


в него передается слово, которое нужно найти в базе и вернуть его синоним, если не найдено, то возвращает исходное слово. Дело в том, что если передать допустим 3 слова цикломМедведев, Дмитрий, Анатольвич, то метод возвращает Медведев, Димунчик, Димуся, т.е. вместо Анатольевич (на которое нету синонима в базе), вставляет синоним на слово Дмитрий. Вот метод next_result();

protected function next_result() {
if ($this->db) {
while (@$this->db->next_result())
$this->db->store_result();
}
}


У меня подозрение как раз на этот метод, но разобраться не получается :)



Спустя 46 секунд (2.11.2011 - 14:34) alexbel2404 написал(а):
Забыл уточнить, хранимка работает верно) проблема где-то в php)

Спустя 5 часов, 9 минут, 11 секунд (2.11.2011 - 19:44) alexbel2404 написал(а):
ни у кого никаких идей? sad.gif

Спустя 13 часов, 32 минуты, 34 секунды (3.11.2011 - 09:16) alexbel2404 написал(а):
Получается вот такая вот фигня ) т.е. на "медведев" все нормально, дальше синоним находит, на "анатольевич" синонима нет, но идет вставка синонима на слово "дмитрий" и так до первого найденого синонима.
user posted image

Спустя 21 минута, 52 секунды (3.11.2011 - 09:38) alexbel2404 написал(а):
все, закрыто) это верх моего тупизма не вызвать из mysql клиента несколько раз одну и ту же хранимку)) вообщем проблема была в ней)

как говориться, утро вечера мудренее)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.