No boolean given

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Eeyk Vd noot

Eeyk Vd noot

28/02/2015 11:30:37
Quote Anchor link
Goede middag,
Ziet iemand misschien wat ik fout doe in dit stukje script?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
  $select
   = mysqli_query($dbcreat,"SELECT * FROM `berichten` WHERE `aan`='".mysqli_real_escape_string($dbcreat,$data->login)."' ORDER BY `datum` DESC LIMIT 0,$max");
  $controle = mysqli_num_rows($select);
?>



Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /home//domains/.nl/public_html/berichten.php on line 234

en deze error krijg ik met mysqli_error();

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1




mvg.

Toevoeging op 28/02/2015 11:52:05:

ik heb de oplossing gevonden.

$max bestond niet omdat de if($blabla == ""){ }elseif($blabla2){ geen }else{

bevatte dus als er niks overeen kwam met de $blabla en $blabla2 dan was er geen waarde.
Gewijzigd op 28/02/2015 12:12:56 door Eeyk Vd noot
 
PHP hulp

PHP hulp

23/11/2024 12:04:37
 
Pipo Clown

Pipo Clown

28/02/2015 11:59:58
Quote Anchor link
Je quotes staan verkeerd waardoor de query niet uitgevoerd kan worden en haal die backticks weg, die zijn zinloos.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
  $select
   = mysqli_query($dbcreat,'SELECT * FROM berichten WHERE `aan`="'.mysqli_real_escape_string($dbcreat,$data->login).'" ORDER BY datum DESC LIMIT 0,10');
  $controle = mysqli_num_rows($select);
?>


Ik neem even aan dat er een verbinding gemaakt is met $dbcreate
 
Eeyk Vd noot

Eeyk Vd noot

28/02/2015 12:23:57
Quote Anchor link
Het probleem is opgelost.
ik had een tip gekregen dat je een echo kunt aanmaken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
echo "SELECT * FROM `berichten` WHERE `aan`='".mysqli_real_escape_string($dbcreat,$data->login)."' ORDER BY `datum` DESC LIMIT 0,".$max;

?>

en toen kon ik zien dat niet alle waardes waren ingevuld.

thanks.
mvg.
 
Willem vp

Willem vp

28/02/2015 12:27:56
Quote Anchor link
> Je quotes staan verkeerd waardoor de query niet uitgevoerd kan worden

Nee, de quotes stonden wél goed. In SQL gebruik je enkele quotes bij strings. Dubbele quotes zijn bedoeld als escape voor kolomnamen.

Helaas accepteert MySQL ook dubbele quotes om strings aan te duiden, waardoor die irritante backtics geïntroduceerd moesten worden om kolomnamen te escapen. Maar we hadden al eerder geconstateerd dat MySQL het niet zo nauw neemt met de SQL-standaards...

Alhoewel MySQL dus zowel dubbele als enkele quotes kan gebruiken bij strings, zou ik toch adviseren om alleen enkele te gebruiken, zodat je het dichtst bij de SQL-standaard blijft. Dat is altijd handig als je ooit eens zou besluiten om een ander DBMS te gaan gebruiken, of wanneer iemand het in zijn hoofd krijgt om een SET SQL_MODE=ANSI_QUOTES te doen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.