我有一个简单的表单,我将数据输入数据库,工作正常。现在我想从另一个表中加载一个选项,这也可以正常工作。什么不好用,当我把这两件事放在一起时。不知怎的,我只能做其中一件事,加载选项不起作用。你能帮帮我吗?
这是代码,我试着保持简单。
<?php
if(!empty($_POST) && $_SERVER['REQUEST_METHOD'] == 'POST'){
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("localhost","root","password","db");
// Check connection
if($link === false){
die("ERROR: Chyba připojování k databázi. " . mysqli_connect_error());
}
// Escape user inputs for security
$name = mysqli_real_escape_string($link, $_REQUEST['name']);
$nickname = mysqli_real_escape_string($link, $_REQUEST['nickname']);
$phone = mysqli_real_escape_string($link, $_REQUEST['phone']);
// attempt insert query execution
$sql = "INSERT INTO test (name, nickname, phone) VALUES ('$name', '$nickname', '$username')";
if(mysqli_query($link, $sql)){
header('Location: index.php');
exit;
} else{
echo "ERROR " . mysqli_error($link);
}
}
?>
<form method="POST" action="">
<label for="name">Name</label>
<input type="text" name="name" id="name"><br>
<label for="nickname">Nickname</label>
<select name="nickname" id="nickname">
<?php
$res=mysqli_query($link, "select * from wp_is_users");
while($row=mysqli_fetch_array($res))
{
?>
<option><?php echo $row["user_login"]; ?></option>
<?php
}
?>
</select>
<label for="phone">Phone</label>
<input type="text" name="phone" id="phone"><br>
<input type="submit" value="Přidat záznam"><br>
`
删除此行:
mysqli_close($link);
首先,你不需要它。其次,当您触发POST方法时,它会关闭连接,然后您正在尝试第二个查询。
另外,在检查请求方法之前打开连接,因此文件的开头应如下所示:
$link = mysqli_connect("localhost","root","password","db");
if(!empty($_POST) && $_SERVER['REQUEST_METHOD'] == 'POST'){
这样,即使方法是get,它也会起作用,这是默认的。
只是不要关闭数据库上的连接注释这一行// mysqli_close($ link);
试试这个代码。你没有正确提交表格。我已经为正确的表单提交添加了一些代码
<?php
if(!empty($_POST) && $_SERVER['REQUEST_METHOD'] == 'POST'){
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("localhost","root","password","db");
// Check connection
if($link === false){
die("ERROR: Chyba připojování k databázi. " . mysqli_connect_error());
}
// Escape user inputs for security
if(isset($_POST['submit'])) {//if form submit button is set
$name = mysqli_real_escape_string($link, $_REQUEST['name']);
$nickname = mysqli_real_escape_string($link, $_REQUEST['nickname']);
$phone = mysqli_real_escape_string($link, $_REQUEST['phone']);
// attempt insert query execution
$sql = "INSERT INTO test (name, nickname, phone) VALUES ('$name', '$nickname', '$username')";
if (mysqli_query($link, $sql)) {
header('Location: index.php');
exit;
} else {
echo "ERROR " . mysqli_error($link);
}
// close connection
// mysqli_close($link); skip this code
}
}
?>
<form method="POST" action="">
<label for="name">Name</label>
<input type="text" name="name" id="name"><br>
<label for="nickname">Nickname</label>
<select name="nickname" id="nickname">
<?php
$res=mysqli_query($link, "select * from wp_is_users");
while($row=mysqli_fetch_array($res))
{
?>
<option><?php echo $row["user_login"]; ?></option>
<?php
}
?>
</select>
<label for="phone">Phone</label>
<input type="text" name="phone" id="phone"><br>
<input type="submit" name="submit" value="Přidat záznam"><br>