[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Функция SOUNDEX() в MySQL и PHP
waldicom
Все привет! Столкнулся с такой странностью: функция SOUNDEX() (в php, в mysql) выводят разные значения для одной и той же строки.
Пример:
Цитата
SELECT SOUNDEX( 'Bufalo' );
Результат: B400


Цитата
echo soundex('Bufalo');
B140


Может кто встречался с таким? Или это правильно?



Спустя 4 часа, 59 минут, 11 секунд (23.03.2009 - 19:26) kirik написал(а):
waldicom
функции ip2long / long2ip тоже дают другой результат (не всегда) нежели функции-братья INET_ATON / INET_NTOA в MySQL.
Используй встроенные MySQL-ные функции, если хранишь данные в БД.

Спустя 15 часов, 44 минуты, 37 секунд (24.03.2009 - 11:11) waldicom написал(а):
Да, придется видимо так и делать (точнее уже сделал).
Просто как-то не понятно, почему так. В следующий раз мне md5() выдаст разные результаты, потом еще чуго-нить... blink.gif

Спустя 6 минут, 55 секунд (24.03.2009 - 11:18) Guest написал(а):
Цитата
Просто как-то не понятно, почему так. В следующий раз мне md5() выдаст разные результаты, потом еще чуго-нить...


у меня было тоже самое:
$hash =md5($test);
кверя (INSERT INTO `test` (zzz, yyy) VALUES ('$hash', '$any_other')
и просто:
кверя (INSERT INTO `test` (zzz, yyy) VALUES (md5('$test'), '$any_other')
выдает разные результаты


Спустя 37 минут, 27 секунд (24.03.2009 - 11:55) Kuliev написал(а):
Цитата (Guest @ 24.03.2009 - 08:18)
Цитата
Просто как-то не понятно, почему так. В следующий раз мне md5() выдаст разные результаты, потом еще чуго-нить...


у меня было тоже самое:
$hash =md5($test);
кверя (INSERT INTO `test` (zzz, yyy) VALUES ('$hash', '$any_other')
и просто:
кверя (INSERT INTO `test` (zzz, yyy) VALUES (md5('$test'), '$any_other')
выдает разные результаты

У меня тоже! Функция MD5() в MySQL и PHP шифруют по разному!

Спустя 11 минут, 48 секунд (24.03.2009 - 12:07) waldicom написал(а):
Цитата
У меня тоже! Функция MD5() в MySQL и PHP шифруют по разному!

Думаю, что нет. md5() у меня работает нормально.

Для
SQL
INSERT INTO `test` (zzz, yyy) VALUES (md5('$test'), '$any_other')

надо попробовать
PHP
$query = "INSERT INTO `test` (zzz, yyy) VALUES (md5(" . $test .<



Спустя 1 час, 6 минут, 8 секунд (24.03.2009 - 13:13) Alchemist написал(а):
я не знаю насчет soundex(), но md5() не может выдавать разные значения для одних и тех же данных. В настоящее время md5() используется в куче программ для идентификации файлов и проверок контрольной суммы. (в тех же торрентах например)

А проблема тут скорее всего в том, что выставлены разные языковые настройки. Например в РНР используется локаль 'ru_RU' c 'cp1251', а в MySQL - latin1_swedish_ci, или наоборот. На ввод-вывод это не влияет, но языковые функции разумеется работают по разному.

Спустя 28 минут, 59 секунд (24.03.2009 - 13:42) Viking написал(а):
Цитата
Просто как-то не понятно, почему так. В следующий раз мне md5() выдаст разные результаты, потом еще чуго-нить...

особо не вникал, но в комментах на http://ru2.php.net/manual/ru/function.soundex.php#26754 есть что-то на эту тему, при чем это было еще в старых версиях пхп и мускл


_____________
Свои мозги еще никто не отменял.
Телепатов нету.
Быстрый ответ:

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