2016-06-20 6 views
0

Dieser Code funktioniert aus irgendeinem Grund nicht. Es heißt "record created successfully", aber wenn ich die SQL DB überprüfe, wird der Datensatz aus irgendeinem Grund nicht angezeigt.Erfolgreich erstellte Datensätze werden nicht in SQL-Datenbank angezeigt

Hier ist mein Code:

<html> 
<title>Voer gegevens in</title> 
<body> 
<?php 
$serverName = "***"; 
$usr="*****"; 
$pwd="*****"; 
$db="********"; 

$connectionInfo = array("UID" => $usr, "PWD" => $pwd, "Database" => $db); 

$con = sqlsrv_connect($serverName, $connectionInfo); 
// $con = require_once "db_config.php"; 
// koppeling met de database-server, gebruikersnaam en wachtwoord 

if (!$con) 
{ 
die ("kon niet verbinden met: " . sqlsrv_connect_error()); 
} 
echo "OK, er is verbinding met de server <br>"; 

$sql="INSERT INTO tblRelatie (fldNaam, fldPostcode, fldPlaats, fldAdres)  VALUES ('".$_POST['Naam']."','".$_POST['Postcode']."','".$_POST['Plaats']."','".$_POST['Adres']."';)"; 
sqlsrv_query($con,$sql); 
// Tabelnaam en alle genoemde kolom-namen waarin de waarden vervolgens  worden geplaatst 

if (!$con) { echo "error"; } 
else { echo "1 record toegevoegd"; } 
sqlsrv_close ($con); 
?> 
</html> 

Was könnte das dazu führen, und wie kann ich es beheben?

+0

Keine Notwendigkeit zu verpflichten? – jarlh

+0

Was ist $ _PO ST ['Adres'] ?? Warum Raum zwischen PO und ST? –

+0

Tut mir leid, dass ich das erste Mal hier etwas gefragt habe, was ich beim Einfügen des Codes vermasselt habe. auch ich einige Dinge kommentiert, weil ich dachte, es war cousing Probleme – Douwsky

Antwort

0

Sie überprüfen nicht den Rückgabewert von sqlsrv_query, so erhalten Sie "Erfolg", wenn Sie nicht sein sollten. Dies verdeckt deine Fähigkeit zu sehen, was wirklich passiert.

ändern die Linien dazu, um das richtige Ergebnis zu erhalten:

$stmt = sqlsrv_query($con, $sql); 
if ($stmt === false) { echo "error: " . print_r(sqlsrv_errors(), true); } 
else { echo "1 record toegevoegd"; } 

Der tatsächliche Fehler ist, dass die INSERT-Anweisung ist schlecht ausgebildet, ganz am Ende der Anweisung. Ich nehme an, dass das ungültige Snippet $_PO ST['Adres'] wegen Kopier-/Einfügefehler ist, das eigentliche Problem ist jedoch unmittelbar danach.

Das Ende der Anweisung:

$_POST['Adres']."');"; 

so dass die Aussage Terminator (;) erscheint außerhalb die Anweisung Klammern:

$_POST['Adres']."';)"; 

sollte dies geändert werden.

+0

OK, er ist verbinding met de Server Fehler: Array ([0] => Array ([0] => IMSSP [SQLSTATE] => IMSSP [1] => -14 [Code] => -14 [2] => Ein ungültiger Parameter wurde an sqlsrv_query übergeben. [Message] => Ein ungültiger Parameter wurde an sqlsrv_query übergeben.)) Dies ist der Fehler, den ich bekomme – Douwsky

+0

Ich hatte '$ con' (als' $ conn') in meinem falsch geschrieben Antworten. Ich habe das korrigiert, und mit dieser Änderung sollte es für Sie arbeiten. –

Verwandte Themen