Beheerder |
|
Heren en dames,
Ik heb een query. Ik werk met PDO. Ik heb de volgende code:
Deze levert false op.
<?php
require_once('models/eb_klant.model.php');
$login = new Eb_klantModel('localhost', 'root', '****', '****');
try {
$a = 'klanten';
$b = 'info@test.nl';
$c = 'pass';
$sQuery = "SELECT COUNT(*) FROM ? WHERE email = ? AND wachtwoord = ?";
$rResult2 = $login->db->prepare($sQuery);
$rResult2->bindParam(1, $a);
$rResult2->bindParam(2, $b);
$rResult2->bindParam(3, $c);
$rResult2->execute();
}
catch (PDOException $e) {
die( $e-getMessage());
}
if ($rResult2->fetchColumn() == 0) {
echo 'false';
} else {
echo 'true';
}
?>
<?php require_once('models/eb_klant.model.php'); $login = new Eb_klantModel('localhost', 'root', '****', '****'); try { $a = 'klanten'; $b = 'info@test.nl'; $c = 'pass'; $sQuery = "SELECT COUNT(*) FROM ? WHERE email = ? AND wachtwoord = ?"; $rResult2 = $login->db->prepare($sQuery); $rResult2->bindParam(1, $a); $rResult2->bindParam(2, $b); $rResult2->bindParam(3, $c); $rResult2->execute(); } catch (PDOException $e) { } if ($rResult2->fetchColumn() == 0) { } else { } ?>
Hierbij krijg ik geen resultaat. Wanneer ik de volgende code uitvoer krijg ik wel true terug.
<?php
require_once('models/eb_klant.model.php');
$login = new Eb_klantModel('localhost', 'root', '****', '****');
try {
$sQuery = "SELECT COUNT(*) FROM klanten WHERE email = 'info@test.nl' AND wachtwoord = 'pass'";
$rResult2 = $login->db->prepare($sQuery);
$rResult2->execute();
}
catch (PDOException $e) {
die( $e-getMessage());
}
if ($rResult2->fetchColumn() == 0) {
echo 'false';
} else {
echo 'true';
}
?>
<?php require_once('models/eb_klant.model.php'); $login = new Eb_klantModel('localhost', 'root', '****', '****'); try { $sQuery = "SELECT COUNT(*) FROM klanten WHERE email = 'info@test.nl' AND wachtwoord = 'pass'"; $rResult2 = $login->db->prepare($sQuery); $rResult2->execute(); } catch (PDOException $e) { } if ($rResult2->fetchColumn() == 0) { } else { } ?>
Het probleem ligt dus waarschijnlijk bij het gebruik van bindParam. Ik heb hetvolgende al geprobeerd:
* bindParam
* bindValue
* Namespace ipv question marks.
Wie ziet er iets of iemand wat deze uitkomst veroorzaakt?
Hierbij dient te worden aangenomen dat de gegevens goed in de database staan. De var_dump van $rResult2 levert de string op zoals die in $sQuery gedefinieerd wordt.
Met vriendelijke groet,
Marten van Urk
Edit
Oplossing gevonden:
Je kan met bindparam de tabelnaam niet meegeven. BindParam werkt hier dus niet mee.
|