Ik ben bezig met een query, waarin ik gebruik maak van nuw_rows, bind_param en fetch_assoc, maar krijg het niet goed werkend.

Los van elkaar wel, maar het lijkt me netter en sneller om alles in één te doen.

Dit is wat ik nu heb, maar op 1 of andere manier blijft het script $result als false zien, volgens diverse websites zou het toch zo moeten:

voorbeeld


<?php
$saltqry = "
				SELECT
						salt,
						mw_gegevens_groep
				FROM 
						mw_gegevens
				WHERE 	
						mw_gegevens_persnr = ?
				";
				if(!$statement = $connection->prepare($saltqry))
				{
				echo "Query error:.". $connection->error();
				} else { 	
					$statement->bind_param('i', $user);   
					$statement->execute();
					$statement->store_result();
					$rows = $statement->num_rows;
					$result = $statement->get_result();	
					$saltuitkomst = $result->fetch_assoc();
				}
?>
Verschillende combinaties werken sowieso niet. Kies 1 ding en blijf daarbij. Wat begrijp je niet aan PDO? Het is mijn persoonlijke favoriet. Mogelijk omdat ik geen MySQL gebruik, al jaren niet.
OW dat is al lang geleden dat ik die keuze gemaakt heb.
Ik moest toen een beslissing maken en mysqli leek toen het makkelijkst.

Ik probeer het nu met num_rows, get_result en fetch_assoc.
Waarschijnlijk zit de fout in de volgorde.

Maar er zijn zoveel websites die dingen beschrijven, moeilijk om de goede eruit te halen.

Toevoeging op 29/05/2016 02:03:57:

het ziet er echter naar uit dat dit zo niet gaat lukken, dus denk dat ik het nu met 2 queries ga doen. 1 voor de aantal gegevens in de database en 1 om de inhoud eruit te halen.
De num_rows komt uit een mysqli_result, zoveel is duidelijk uit de documentatie. Dus je moet deze niet uit je statement halen. Volgens jouw voorbeeldcode zou $result->num_rows een beter resultaat moeten leveren.
Zet je error reporting eens aan:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'stdout');
?>
De error reports zelf zouden daarmee goed moeten zijn, tenzij dit nu letterlijk je browser output is. Dan moet je het corrigeren. Het verandert echter niets aan de eerdere opmerking over $statement vs $result.
meestal kloppen de scripts op deze website wel, maar nu krijg ik toch weer dezelfde foutmelding die ik de hele dag al krijg

Fatal error: Call to a member function fetch_assoc() on boolean in /home/jcslnl/domains/jcsl.nl/public_html/medewerkers/includes/main.php on line 444

Misschien is dit voorbeeld verouderd


Toevoeging op 29/05/2016 02:39:26:

NA heel veel gedoe, hebik het eindelijk werkend. Ik heb geen idee waarom, maar het werkt.


<?php
$mw_gegevens_qry = "
								SELECT
										* 
								FROM 
										mw_gegevens
								WHERE 	
										mw_gegevens_persnr=?
								AND 	
										mw_gegevens_pass=?
								AND
										mw_gegevens_pass!='' 
								";
		$statement = $connection->prepare($mw_gegevens_qry);
		if($qry === false){
		echo "Query error:.". $connection->error();
		}else{ 	
			$statement->bind_param('is', $user, $userpassword);   
			$statement->execute();
			$result = $statement->get_result();	
			$rows = $result->num_rows;
			$mwgegevens = $result->fetch_assoc();
?>
Dus je doet precies wat ik zojuist omschreven heb. Verrassend dat dat werkt.
Behalve dat $rows = $statement->num_rows; moet worden aangepast naar $rows = $result->num_rows;
Precies wat ik zei toch? "Volgens jouw voorbeeldcode zou $result->num_rows een beter resultaat moeten leveren."
je hebt gelijk, ik had daar overheen gelezen.

Reageren