成功创建的记录不会显示在SQL数据库中

时间:2016-06-20 10:20:57

标签: php html sql sql-server

此代码由于某种原因不起作用。它说“记录创建成功”,但是当我检查SQL DB时,记录由于某种原因没有出现。

这是我的代码:

<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>

可能导致这种情况的原因以及如何解决?

1 个答案:

答案 0 :(得分:0)

您没有检查$stmt = sqlsrv_query($con, $sql); if ($stmt === false) { echo "error: " . print_r(sqlsrv_errors(), true); } else { echo "1 record toegevoegd"; } 的返回值,因此您获得了成功&#34;什么时候不应该。这掩盖了你看到真正发生的事情的能力。

将行更改为此项以获得正确的结果:

$_PO    ST['Adres']

实际错误是INSERT语句在语句的最末端是格式错误的。我认为无效的代码段$_POST['Adres']."';)"; 是由于复制/粘贴错误造成的,但真正的问题是紧接其后。

声明的结尾:

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

应改为:

;

以便语句终结符(use Cake\Database\Expression\TupleComparison; // ... $fields = ['order_date', 'order_number']; $types = ['date', 'integer']; $query->where( new TupleComparison($fields, $orders, $types, 'IN') ); )出现语句括号外。