[PHP / MySQL] PHP check op NULL

Pagina: 1
Acties:
  • 153 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • willem-alex
  • Registratie: December 2001
  • Laatst online: 18-05-2024

willem-alex

you don't wanna know ...

Topicstarter
Als ik een veld uit een database wil halen behalve wanneer die de waarde NULL heeft, dan doe je dat met IS NOT NULL in de MySQL query. Is het ook mogelijk om deze check later nog uit te voeren, nadat je de waarde om hebt gezet in een PHP variabele?

if (!isset($var)) of if (empty($var)) werkt in ieder geval niet...

Acties:
  • 0 Henk 'm!

Verwijderd

if ($var=NULL)

Acties:
  • 0 Henk 'm!

  • willem-alex
  • Registratie: December 2001
  • Laatst online: 18-05-2024

willem-alex

you don't wanna know ...

Topicstarter
Dan zou het volgens mij nog == NULL moeten zijn maar ook dat lijkt niet te werken.

Als ik de variabele trouwens echo, dan staat er gewoon 0 terwijl in de database écht NULL staat. Kan PHP überhaupt wel met NULL overweg?

[ Voor 26% gewijzigd door willem-alex op 26-06-2006 18:20 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Dat van die == ipv = bedoelde ik eigenlijk ook |:( Wel apart dat die check bij mij wel prima werkt (PHP 5.1.2, maar ik heb het ook op een systeem met PHP 4.3.nogwat)

PHP is niet erg kieskeurig wat het type betreft, dus de kans dat NULL, 0 en '' als dezelfde waarde worden gezien is nog best groot.

Acties:
  • 0 Henk 'm!

  • Bloemkoolsaus
  • Registratie: Juni 2006
  • Niet online
Ik heb het ff geprobeerd met de volgende code

$test = null;
if ($test == null){
echo "null";
}
echo $test;

Maar werkt gewoon..
Weet je zeker dat de waarde die je terug krijgt uit je database wel echt NULL is?

Edit:
0 is dus anders als NULL

[ Voor 11% gewijzigd door Bloemkoolsaus op 26-06-2006 18:28 ]


Acties:
  • 0 Henk 'm!

  • willem-alex
  • Registratie: December 2001
  • Laatst online: 18-05-2024

willem-alex

you don't wanna know ...

Topicstarter
Bedankt, de oplossing was voor mij het vervangen van de NULL door iets anders met behulp van COALESCE: http://www.squeekmachine.co.uk/code.php?s=5&c=27

Hm, mijn fout zie ik nu, de waarde was inderdaad geen NULL, maar goed, wel weer een leuke MySQL functie erbij geleerd vandaag :D

[ Voor 32% gewijzigd door willem-alex op 26-06-2006 18:38 ]


Acties:
  • 0 Henk 'm!

  • Icelus
  • Registratie: Januari 2004
  • Niet online
Gebruik PHP' is_null functie of === om op NULL te testen.

[ Voor 24% gewijzigd door Icelus op 27-06-2006 10:35 ]

Developer Accused Of Unreadable Code Refuses To Comment


Acties:
  • 0 Henk 'm!

Verwijderd

PHP is niet erg kieskeurig wat het type betreft, dus de kans dat NULL, 0 en '' als dezelfde waarde worden gezien is nog best groot.
Jawel PHP is wel kieskeurig maar heeft daar een speciale strong typing vergelijking voor zoals mijn voorganger wilde zeggen

== kijkt niet naar type:
code:
1
2
3
4
5
6
7
8
9
$a = "1";
$b = 1;

if($a == $b) echo "a en b zijn gelijk";
//Hier echoot PHP inderdaad die regel

if($a === $b) echo "a en b zijn echt gelijk"
else echo "ze lijken gelijk maar zijn het niet";
//Nu wordt "ze lijken gelijk maar zijn het niet" ge-echoot door de PHP code
Pagina: 1