此代码由于某种原因不起作用。它说“记录创建成功”,但是当我检查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>
可能导致这种情况的原因以及如何解决?
答案 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')
);
)出现在语句括号外。