За последние 24 часа нас посетили 17525 программистов и 1727 роботов. Сейчас ищут 916 программистов ...

Сохранение типов данных при извлечении записей

Тема в разделе "PHP и базы данных", создана пользователем demoniqus, 19 янв 2017.

  1. demoniqus

    demoniqus Активный пользователь

    С нами с:
    29 мар 2011
    Сообщения:
    34
    Симпатии:
    0
    Добрый день!

    Я когда-то работал на пыхе. Потом ушел надолго в C# + MSSQL. Работая с MSSQL,я как-то ни разу не задумался о том, что данная БД предоставляет при выборке строки, в которых сохранены исходные типы данных в колонках. Но сейчас я вернулся к работе с пыхой и MySql и наткнулся на то, что данная БД мне по умолчанию возвращает массив строковых значений в качестве записи. Она не возвращает массив РАЗНОТИПНЫХ значений. В связи с этим у меня возник вопрос, можно ли что-то сделать (может какие-то настройки БД, может я не в курсе какой-нибудь функции для работы с БД), чтобы MySql мне возвращал числовые ячейки как числа, логические как bool и т.д.? Или надо самому писать какой-нибудь замудреный класс, который будет извлекать эту информацию из системных таблиц и строить разнотипный массив?
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Просто учитывай привидение типов https://secure.php.net/manual/en/types.comparisons.php и как работают функции, обычно пишут что 0 считают за false или пустую строку за false, так у функции https://secure.php.net/manual/en/function.empty.php происходит например.
     
  3. demoniqus

    demoniqus Активный пользователь

    С нами с:
    29 мар 2011
    Сообщения:
    34
    Симпатии:
    0
    denis01, про преобразование типов помню, но фишка в том, что, например, я создал логическую колонку типа BIT(1). Проставил туда 0. А получу при извлечении записи "0", т.е. строку, которая преобразуется в true вместо false(((
     
  4. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    @demoniqus,
    $i = "0";
    $i == "0" - true
    $i === "0" - false