Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как правильно записать в базу GPS координаты
 
 автор: Port_Artur   (06.07.2012 в 20:00)   письмо автору
 
 

Пытаюсь в базу записать координаты 15°06'07"

Но они записываются как:
15°06?07?

Таблица создана в формате utf8

 mysql_query("SET NAMES utf8");


, файл заполняющий базу тоже в utf8.

mysql_query("INSERT INTO cea (city,latitude_gms) VALUES ('Аброн)','15°06'07"')") or error(mysql_error() );


Как сделать чтобы координата записывалась как : 15°06'07"

  Ответить  
 
 автор: Саня   (06.07.2012 в 20:11)   письмо автору
 
   для: Port_Artur   (06.07.2012 в 20:00)
 

Обработайте предварительно данные функцией mysql_real_escape_string();
А ещё лучше, переходите на PDO и пользуйтесь подготовленными выражениями.

  Ответить  
 
 автор: Port_Artur   (06.07.2012 в 20:20)   письмо автору
 
   для: Саня   (06.07.2012 в 20:11)
 

Попробовал экранировать спецсимволы вручную - не помогло.

  Ответить  
 
 автор: Port_Artur   (06.07.2012 в 23:03)   письмо автору
 
   для: Port_Artur   (06.07.2012 в 20:20)
 

так как правильно написать запрос?

  Ответить  
 
 автор: Port_Artur   (06.07.2012 в 23:46)   письмо автору
 
   для: Port_Artur   (06.07.2012 в 23:03)
 

почему MySQL не распознает escape-последовательности:

\'
\"

вместо них записывает в базу

?
?

  Ответить  
 
 автор: Port_Artur   (07.07.2012 в 00:09)   письмо автору
 
   для: Port_Artur   (06.07.2012 в 23:46)
 

Просто у меня более 1000 записей для внесения базу, с вручную подготовленными параметрами, как-то по другому заносить даже не предсталяю как, помогите поправить записи с кавычками так, чтобы внеслись координаты, а то впору застрелиться.

  Ответить  
 
 автор: Port_Artur   (07.07.2012 в 08:33)   письмо автору
 
   для: Port_Artur   (07.07.2012 в 00:09)
 

неужели никто не подскажет?!

  Ответить  
 
 автор: confirm   (07.07.2012 в 09:55)   письмо автору
 
   для: Port_Artur   (07.07.2012 в 08:33)
 

А выше вам о чем сказали?
<?
$s 
"15°06'07";
echo 
mysql_real_escape_string($s);
//результат 15°06\'07
PS. Если предполагается поиск по GPS данным, то не лучше ли это сделать раздельными полями integer?

  Ответить  
 
 автор: Port_Artur   (07.07.2012 в 12:20)   письмо автору
 
   для: confirm   (07.07.2012 в 09:55)
 

ну правильно, вы делаете escape символ, но почему тогда если вручную сделать 15°06\'07\" при создании записи в базу данных, в базе вопросы вместо кавычек, а не сами кавычки, я уже раз 5 проверял. Никак.

mysql_query("INSERT INTO cea (city,latitude_gms) VALUES ('Аброн)','15°06\'07\"')") or error(mysql_error() );

  Ответить  
 
 автор: Port_Artur   (07.07.2012 в 12:45)   письмо автору
 
   для: Port_Artur   (07.07.2012 в 12:20)
 

не смотря на

 mysql_query("SET NAMES utf8");


поля в базе почему-то создавались как 1251.

пришлось при создании базы поля указать явно:

city VARCHAR(250)CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,


странно раньше поля сразу созавались в utf8, достаточно было

 mysql_query("SET NAMES utf8");

  Ответить  
 
 автор: confirm   (07.07.2012 в 13:16)   письмо автору
 
   для: Port_Artur   (07.07.2012 в 12:45)
 

SET NAMES - не ведает указанием кодировки полей при их создании, это вы обязаны указывать сравнение.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования