Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: где отвалился пробел в MySQL ?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: ваши варианты
LIME
Отправлено: 02 Мая, 2015 - 23:02:21
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




вдохновился http://forum.php.su/topic.php?fo...1&topic=2917 ))
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE IF NOT EXISTS `test` (
  2.   `col` char(3) NOT NULL
  3. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  4.  
  5. INSERT INTO `test` (`col`) VALUES ('ss ');

PHP:
скопировать код в буфер обмена
  1. $result = $db->query('SELECT * FROM test');
  2.     while($row = $result->fetch_array()){
  3.         var_dump($row);
  4. /*
  5. array(2) {
  6.   [0]=>
  7.   string(2) "ss"
  8.   ["col"]=>
  9.   string(2) "ss"
  10. }
  11. куда пропал пробел? И главное зачем?
  12. развлекайтесь господа)
  13. */
  14.     }

(Отредактировано автором: 02 Мая, 2015 - 23:15:31)

 
 Top
dcc0
Отправлено: 02 Мая, 2015 - 23:05:07
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Где варианты ответов?


-----
Март 2021. Бросил программирование
 
 Top
LIME
Отправлено: 02 Мая, 2015 - 23:05:49
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




тут без вариантов
интересно где потеряли?
 
 Top
Мелкий Супермодератор
Отправлено: 02 Мая, 2015 - 23:15:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Ну это просто.
Спойлер (Отобразить)


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 02 Мая, 2015 - 23:17:31
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Да
Но нет это не то же самое по своей причине
 
 Top
dcc0
Отправлено: 02 Мая, 2015 - 23:17:56
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Мелкийэто поэтому в регулярках рекомендуют использовать \S , а не сам пробел?


-----
Март 2021. Бросил программирование
 
 Top
LIME
Отправлено: 02 Мая, 2015 - 23:20:02
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Спойлер (Отобразить)
 
 Top
Sail
Отправлено: 02 Мая, 2015 - 23:56:10
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




Вообще-то, чёрным по-белому (если не перенастраивать) описана явная зависимость от PAD_CHAR_TO_FULL_LENGTH
 
 Top
Мелкий Супермодератор
Отправлено: 03 Мая, 2015 - 00:21:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Спойлер (Отобразить)


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 03 Мая, 2015 - 00:27:22
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Мелкий пишет:
Нет никаких случайных значений, char всегда пишется полностью.
странное заявление
Конечно они пишется полностью
А случайными были бы значения оставшиеся от предыдушего использования области памяти/диска и тогда не было бы понятно где закончилась введенная строка
Именно потому и добивается длина
Именно для иниацилизации случайных значений в оставшейся области
Собственно чтоб разъяснить этот момент интнресующимся и была зачата тема
 
 Top
Мелкий Супермодератор
Отправлено: 03 Мая, 2015 - 09:49:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




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

Да, я чуть позже вкурил, что ты про процессы так глубоко в С. Но всё равно - только памяти. Область диска могла даже не вычитываться, а сразу писаться. А если вычитывалась - то это всё равно мусор уже в памяти.


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 03 Мая, 2015 - 10:54:39
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




включаю режим зануды))
Си тут какбэ ни причем. Такова уж логика что память не заполняют нулями при освобождении) чтоб быстрее
а насчет диска да
добивается скорее в памяти и пишется на диск уже сплошняком как есть

(Отредактировано автором: 03 Мая, 2015 - 10:55:09)

 
 Top
DeepVarvar Супермодератор
Отправлено: 03 Мая, 2015 - 13:30:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




И где посмотреть, что чар заполняется именно (ASCII code 32) пробелами?
Что-то мне подсказывает, что заполняется он "\0" (memset, bzero, ?fill).
А скорее всего даже не заполняется, т.к. первый встреченный такой нулбайт уже является обозначением конца строки.
И даже если там дальше что-то есть - оно не прочитается строковыми.
 
 Top
LIME
Отправлено: 03 Мая, 2015 - 14:03:11
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




DeepVarvar нет)
во первых в доках написано что пробел
во вторых вот тебе эксперимент - пропал пробел
при отдаче они с конца удаляются
(Добавление)
думаю что нет смысла использовать терминатор если читаем последовательно
только замедлимся на пропуск маленького участка
но хз что там у них внутрях
есть догадка но уже охота спать)
а посмотреть вообще можно
MyISAM хранит вполне читаемый файл
погляди если интересно

(Отредактировано автором: 03 Мая, 2015 - 14:11:21)

 
 Top
DeepVarvar Супермодератор
Отправлено: 03 Мая, 2015 - 14:24:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




LIME пишет:
пропал пробел
Автотрим?
Хотя что тут гадать -- нужно просто посмотреть сорцы, но щас мне тоже лениво ))
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Прочее »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB