我试图进入php和mysql,我创建了这个表单,用于将数据插入到我的数据库中,但是在填写表单时,没有数据插入到sql数据库中。将信息插入到具有多个外键的表中。在调试sql时,我收到错误消息:错误查询:INSERT INTO bud('beløp,idkjoper,idgjenstand')VALUES('7500','3','1')这些是正确的值。
我怀疑问题是我试图找到一个包含买家名称的列表,然后将出价登记为买家ID。我试图绕过必须记住buyerID来进行出价,而是将买方名称显示在列表中,并在选择买方名称后,将买方ID插入数据库。
如果您可以花一天时间看看,我会非常感激:) 这是sql段。
<?php
$tilkobling=mysqli_connect ("localhost","root","root", "bruktbutikk");
$sql="select navn,etternavn from kjøper";
$datasett = $tilkobling->query($sql);
$conn=mysqli_connect ("localhost","root","root", "bruktbutikk");
$sql1="select beskrivelse,idgjenstand from gjenstand";
$datasett1=$conn->query($sql1);
if(isset($_POST["submit"]))
{
$sql =sprintf("INSERT INTO bud(beløp,idkjoper,idgjenstand) VALUES
(%s,%s,%s)",
$tilkobling->real_escape_string($_POST["lstnavn"]),
$tilkobling->real_escape_string($_POST["lstbeskrivelse"]),
$tilkobling->real_escape_string($_POST["txtbeløp"])
);
$tilkobling->query($sql);
header("Location: budok.php");
}
?>
这是我的表格:
<main>
<h1> Gi bud</h1>
<br/>
<form method="post">
<label for="lstnavn">Budgiver:</label>
<select name="lstnavn" id="lstnavn">
<?php while($rad=mysqli_fetch_array($datasett)) { ?>
<option value="<?php echo $rad["idkjoper"]; ?>">
<?php echo $rad["navn"], ($rad['etternavn']); ?>
</option>}
<br><br>
<?php } ?> <br><br>
</select>
<br>
<form method="post">
<div>
<label for="lstbeskrivelse">gjenstand:</label>
<select name="lstbeskrivelse" id="lstbeskrivelse">
<?php while($rad=mysqli_fetch_array($datasett1)) { ?>
<option value="<?php echo $rad["idgjenstand"]; ?>"> <?php echo
$rad["beskrivelse"]; ?>
</option>}
<br><br>
<?php } ?> <br><br>
</select>
<br>
<label for="txtbeløp">beløp:</label>
<input type="text" name="txtbeløp" id="txtbeløp"
placeholder="beløp" /> <br/><br>
<br/>
<button type="submit" name="submit">Publiser</button>
</form>
</main>
答案 0 :(得分:0)
您的错误:
%s
real_escape_string()
没有为字符串添加引号,使用".. VALUES('%s', '%s', '%s')"
或查看预备语句如何调试:
$tilkobling->query()
在失败时返回false,在这种情况下使用var_dump($tilkobling->error)
显示错误消息,当然还有var_dump($sql)
以查看真正发送给MySQL的内容。< / p>