Record wordt niet weggeschreven

Status
Niet open voor verdere reacties.

Wimpieoh

Gebruiker
Lid geworden
18 mrt 2008
Berichten
40
Na enige tijd gestopt te zijn met PHP ben ik hiermee terug aan de slag gegaan. Eerst kwamen er steeds foutmeldingen omdat ik mysql_query gebruikte ipv mysqli_query. Na wat zoeken heb ik dit opgelost. Het is een zeer klein bestandje dat later steeds uitgebreid kan worden, ttz enkel een pid (persoon id), pvoornaam en pachternaam dienen opgevuld te worden. Veldtypes zijn bigint autoincrement, VARCHAR(12) en VARCHAR(40). Heb zelfs twee bestandjes gecreëerd: InnoDB en MyISAM. Alhoewel er geen fouten meer optreden en de regel bijvoorbeeld "Beste Danny, uw gegevens zijn opgeslagen in onze database" verschijnt, is dit laatste niet het geval. Dit kleine recordje wordt gewoonweg niet opgeslagen. Waaraan zou dit kunnen liggen?


invulformulier1.php
HTML:
<html>
<head>
<title>Invulformulier</title>
<style type="text/css">
form {
	margin-left: 300px;
	margin-right: 800px;
}
</style>
</head>
<body>
<form action="verwerkFormulier.php" method="post">
<fieldset>
<legend>Invulformulier</legend>
Voornaam:<br>
<input type="text" name="voornaam" size="12"><br>
Achternaam:<br>
<input type="text" name="achternaam" size="40"><br>
<br><br>
<input type="submit" name="verzenden" value="Verzenden">
</fieldset>
</form>
</body>
</html>

verwerkFormulier.php
PHP:
<?php if(isset($_POST['verzenden'])) {
    include("verbinding.php");	
	$voornaam = strip_tags($_POST['voornaam']);
	$achternaam = strip_tags($_POST['achternaam']);
	$sql = "insert into persoon(pvoornaam,pachternaam) values($voornaam,$achternaam)";
	mysqli_query($connection,$sql);
	mysqli_close($connection);
	echo "Beste $voornaam, uw gegevens zijn opgeslagen in onze database.";
} else {
	echo "Sorry, er is een fout opgetreden!";
}
?>

verbinding.php
PHP:
<?php
// gegevens voor toegang
$host="localhost";         // Naam (IP-adres) van de computer met MySQL
$user="root";                   // Gebruikersnaam voor toegang tot MySQL
$password="";                // Wachtwoord
$dbname="test";            // Naam van de database
// verbinding opbouwen
$connection = mysqli_connect($host,$user,$password,$dbname) or die("Verbinding is mislukt!");
?>
 
Laatst bewerkt door een moderator:
wat is de return value van "mysqli_query($connection,$sql);" ?

Het feit dat je code niet vastloopt is namelijk geen garantie dat je geen error hebt. mogelijk een fout in de naam van de tabel, oid.
 
verwerkFormulier.php Kan je hiermee verder?
Code:
<?php
if (!isset($_POST['verzenden'])) {
    exit("Sorry, er is een fout opgetreden!");
}
include("verbinding.php");
$voornaam   = strip_tags($_POST['voornaam']);
$achternaam = strip_tags($_POST['achternaam']);
if ($voornaam == "" || $achternaam == "") {
    $result = "Voor- en achternaam zijn verplichte invulvelden.";
} else {
    $sql = "INSERT INTO persoon (pvoornaam, pachternaam) VALUES ('$voornaam', '$achternaam')";
    mysqli_query($connection, $sql);
    mysqli_close($connection);
    $result = "Beste $voornaam, uw gegevens zijn opgeslagen in onze database.";
}
?>
<html>
<head>
<title>Resultaat</title>
</head>
<body>
<?php echo $result ?>
</body>
</html>

Ik ga er vanuit dat je host, dbname, user en password goed hebt ingevuld.

Je kan tijdens bouwen foutmeldingen tonen
Code:
$connection = mysqli_connect($host, $user, $password, $dbname);
if (mysqli_connect_errno()) $result = "Connectie fout: " . mysqli_connect_error();

$sql = ".....";
if (mysqli_query($connection, $sql) === false) {
    $result = "Query fout: " . mysqli_error($connection);
} else {
    $result = "Beste $voornaam, uw gegevens zijn opgeslagen in onze database.";
}
Suc6. Have fun.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan