Autor Zpráva
djkmito
Profil
Keď získam z MySQL datábazy hodnotu NULL v PHP mi ho berie ako string a neviem potom overiť či je to prázdna hodnota.
Návratová hodnota pri is_null() ako aj pri empty() by mala byť TRUE ale mne to stále vráti FALSE. Rovnako aj keď si túto premennú dám vypísať cez echo tak mi vypíše "NULL" ale nemalo by vypísať nič. A zistil som, že keď výsledok z datábazy vložím do premennej tak je typu string.
$stmt = $mysqli->prepare("SELECT `activation`
  FROM `authentication`
  WHERE `mail`=?");

$stmt->bind_param('s', $mail);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$stmt->close();

if (is_null($result)) {
  echo 'is NULL';
} else echo 'not NULL';

Toto by malo vrátiť not NULL ale mne to vráti is NULL
Zechy
Profil
A co to zkusit ověřit stylem ...
if($result == "NULL")
...?
anonymní
Profil *
Zechy:
to není řešení, pokud je v DB skutečně uloženo NULL.

djkmito:
nemáš v databázi 'NULL' místo NULL? Jinak by mělo is_null fungovat.
abc
Profil
djkmito:
A co když v databázi nemáš NULL jako prázdno, ale NULL jako string? Jak se to tam ukládá?
djkmito
Profil
V databáze mám určite iba NULL bez apostrofov.
abc:
Ako vložím do databázy NULL ako prázdno namiesto NULL ako string?
abc
Profil
djkmito:
Když ukládáš/aktualizuješ, tak nedáš NULL do uvozovek tedy:
INSERT INTO TABLE (sloupec) VALUES (NULL)
místo
INSERT INTO TABLE (sloupec) VALUES ('NULL')
djkmito
Profil
Hurá, asi to tam bolo iba nejako zle uložené. Teraz som si všimol, že už v databáze je to ako string ale to som tam asi zadával ručne cez adminer.
Spravil som UPDATE a už to beží, ďakujem.
Toto téma je uzamčeno. Odpověď nelze zaslat.