Beste mensen,

Ik ben bezig met een simpel sign up scriptje en werk voor het eerst met PDO. Nu heb ik een PDO config bestandje voor db connectie:


<?php
// configuration
$dbtype     = "mysql";
$dbhost     = "localhost";
$dbname     = "databasenaam";
$dbuser     = "root";
$dbpass     = "databasewachtwoord";
 
// database connection
$db = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);

if ($db == false) {
	header("Location: http://www.google.nl");
}
?>


Dit werkt, ik krijg geen foutmeldingen en alles lijkt te kloppen, maar bij de register.php zit denk ik
het probleem, maar ook hier krijg ik geen foutmelding, maar wordt er simpelweg niks in de db gestopt:


<?php

	// includes
	include ("config.php");

	// input verification
	$name = $db->quote($_POST["name"]);
	$password = $db->quote($_POST["password"]);
	$email = $db->quote($_POST["email"]);

	if (empty($_POST["name"]) || empty($_POST["password"]) || empty($_POST["email"])) {
		header("Location: http://www.google.nl");
	}

	else {
		$sql = "INSERT INTO beta_users (id, name, password, email) VALUES ('$name', '$password', '$email')"; 
		 
		$results = $db->exec($sql);
	}

?>


Wat is er nou precies fout?

Alsvast bedankt!

Mvg,
Piet
Zet even je error reoprting aan zodat je kunt zien wat er fout gaat.
Bedoel je met de:


<?php
try {

           //your code

    } catch( PDOEXception $e ) {


           echo $e->getMessage(); // display error
           exit();


    }
?>


Dan krijg ik helemaal niks te zien...
Zet dit eens bovenaan:

<?php
ini_set('error_reporting', E_ALL);
?>
Dan krijg ik nog steeds niks te zien, gewoon een witte pagina.
En als je dit erbij zet...

<?php
ini_set('display_errors', true);
?>

of dit... (hangt van je PHP versie af)

<?php
ini_set('display_errors', 'stdout');
?>

Heb je het helemaal vooraan in je code geplaatst?
Yup, maar moet ik dan met deze regels die try functie voor het checken van die PDO codes nog erbij zetten of laat dit alles al zien?

[size=xsmall]Toevoeging op 15/05/2013 00:49:30:[/size]

Nog steeds helemaal niets... :(
ik denk dat je je variabelen even buiten quotes moet zetten op regel 16 in je query..

jou fout ligt volgens mij specifiek op regel 18.

dit moet zijn $db->execute(); overigens hoeft deze niet in een variabele. eveneens regel 7,8 en 9 kunnen direct in je query
Het lijkt me dat je iets zou moeten zien als er daadwerkelijk iets fout gaat.
Type eens bewust iets fout in, krijg je dan wel een foutmelding te zien?

<?php
echo 'bla'
echo 'bla';
?>

Als ik $db->execute(); neer zet krijg ik het volgende:

Fatal error: Call to undefined method PDO::execute() in D:\Program Files\xampp\htdocs\alphaII\beta\system\beta\signup\register.php on line 18

Voor de duidelijkheid, nu heb ik dus:


<?php

	// includes
	include ("config.php");

	// input verification
	$name = $db->quote($_POST["name"]);
	$password = $db->quote($_POST["password"]);
	$email = $db->quote($_POST["email"]);

	if (empty($_POST["name"]) || empty($_POST["password"]) || empty($_POST["email"])) {
		header("Location: http://google.nl");
	}

	else {
		$sql = "INSERT INTO beta_users (id, name, password, email) VALUES ($name, $password, $email)"; 
		 
		$db->execute();
	}

?>


Hoe doe ik regel 7, 8 en 9 direct in mijn query, wat bedoel je daarmee?

Ik krijg wel degelijk foutmeldingen te zien.
Reshad F op 15/05/2013 00:50:36

dit moet zijn $db->execute();

Dat lijkt me niet. Execute gebruik je bij prepared statements. Exec is oké.

Reageren