我正在努力学习PHP& Mysqli在尝试回显/打印行id(或在本例中为“ref”)时遇到一些问题为H2(其中它表示“FORM”)。
另外,当我添加一个新行时,它应该在数据库中获得下一个id。
我希望这是有道理的。
很抱歉,如果已发布。找不到它。
<?php
//server with default setting (user 'root' with no password) */
define('DB_SERVER', 'host');
define('DB_USERNAME', 'user');
define('DB_PASSWORD', '****');
define('DB_NAME', 'database');
$link = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD);
if (!$link) {
die('could not connect: ' . mysqli_connect_error());
}
$db_selected = mysqli_select_db($link, DB_NAME);
if (!$db_selected) {
die('Cant use ' . DB_NAME . ': ' . mysqli_connect_error());
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$value_1 = $_POST['column_1'];
$value_2 = $_POST['column_2'];
$value_3 = $_POST['column_3'];
$sql = "INSERT INTO maskiner (column_1, column_2, column_3) VALUES ('$value_1', '$value_2', '$value_3')";
if (!mysqli_query($link, $sql)) {
die('ERROR: ' . mysqli_connect_error());
}
mysqli_close($link);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test2</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
<style type="text/css">
body{ font: 14px sans-serif; }
.wrapper{ width: 350px; padding: 20px; }
</style>
</head>
<body>
<div class="wrapper">
<h2>FORM</h2>
<p>Please fill this form to create an account.</p>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<div class="form-group">
<label>Column_1</label>
<input type="text" name="column_1"class="form-control" value="<?php echo $value_1; ?>">
<span class="help-block"></span>
</div>
<div class="form-group">
<label>Column_2</label>
<input type="text" name="column_2"class="form-control" value="<?php echo $value_2; ?>">
<span class="help-block"></span>
</div>
<div class="form-group">
<label>Column_3</label>
<input type="text" name="column_3"class="form-control" value="<?php echo $value_3; ?>">
<span class="help-block"></span>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary" value="Submit">
<input type="reset" class="btn btn-default" value="Reset">
</div>
</form>
</div>
</body>
</html>
答案 0 :(得分:1)
我不确定您的问题是否正确,但请尝试使用
在数据库中创建表格{{1}}这样,您的ID行将自动递增,您不必提供值
答案 1 :(得分:1)
如果我理解你需要最后一个插入ID。如果这是真的,你可以使用代码
$last_id = mysqli_insert_id($link);
上面的代码获取最后插入的增量ID。
注意:您的表中的id列,必须是增量属性
答案 2 :(得分:0)
如果您想提前知道下一个ID,则无法使用
$next_id = mysqli_insert_id($link)+1;
因为当你下次使用mysqli_insert_id()时关闭mysql连接,你得到0。
您可以使用查询:从maskiner中选择max(id)+1作为next_id; ,但是如果删除最后插入的行,则会得到错误的ID。为避免这种情况,您可以在sql insert语句中分配next_id:
$sql = "INSERT INTO maskiner (id, column_1, column_2, column_3) VALUES ('$next_id','$value_1', '$value_2', '$value_3')";