我正在尝试插入数据库,但我总是得到回声:
' ticket niet aangemaakt'
我可以使用'?' inbetween变量?
如果是,有人可以看到一些错误,否则我知道有拼写错误 变量。
<?php
//this works fine
$ophaalKlantQuery = "SELECT * FROM klant WHERE klantNaam='$naam'";
$result = $connectie->query($ophaalKlantQuery);
if (mysqli_num_rows($result) == 0) {
echo "klant niet gevonden";
}
while ($row = $result->fetch_assoc()) {
if ($row['klantNaam'] === $naam) {
echo $row['klantNaam'];
$klantID = $row['klantId'];
}
}
// everything below doesnt insert
$insertticket = $connectie->prepare("INSERT INTO ticket (ticketId, inBehandeling, probleem, trefwoorden, prioriteit, aantalXterug,
terugstuurLock, lijnNr, datumAanmaak, nogBellen, log, streefdatum, redenTeLaat, klantTevreden, ftsAccountNr, aangewAccountNr, klantId, subCategorieId,
binnenkomstId, vVLaptopTypeId, besturingssysteemId)
VALUES ('','$inbehandeling',?,?,?, '$aantalXterug','$terugstuurLock','$lijnNr','$datumAanmaak','$check','$log',?,'$redentelaat','$klanttevreden','$fstAccountNr',
'$aangewAccountNr','$klantID',?,?,?,?)");
if ($insertticket) {
$insertticket->bind_param('ssisiiii', $probleem, $trefwoorden, $prioriteit, $streefdatum, $scategorie, $binnenkomstT, $merktype, $besturingsysteem);
if ($insertticket->execute()) {
echo 'ticket aangemaakt';
//header("Refresh:5; url=../index.php", true, 303);
}
}else {echo 'ticket niet aangemaakt';}
?>
答案 0 :(得分:-1)
有不同的语法,但现在做SQL请求的好方法是将SQL与传递的变量分开。您永远不应该直接在SQL请求字符串中连接一个值。
有关于此的文档,但总的来说,用字符串中的值替换将由bind方法自动安全地替换的值。
语法示例:
'INSERT INTO test (name, age) VALUES (?, ?)'
'INSERT INTO test (name, age) VALUES (:name, :age)'