我正在尝试学习php&Mysqli试图回声/打印行ID(或在这种情况下为H2((在其中说"形式"(时遇到了一些问题。
同样,当我添加新行时,它应该在数据库中获得下一个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>
我不确定是否正确理解您的问题,但请尝试使用
在数据库中创建表格CREATE TABLE IF NOT EXISTS `your table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
以这种方式,您的ID行将自动增加,而您不必馈送值
如果我知道您需要最后插入ID。如果那是真的,您应该使用休假代码
$last_id = mysqli_insert_id($link);
上面代码获得最后插入的增量ID。
注意:您表中的ID列,必须是增量属性
如果您想事先知道下一个ID,则不能使用
$next_id = mysqli_insert_id($link)+1;
因为下次使用mysqli_insert_id((关闭MySQL连接时,您会得到0。
您可以使用查询:从maskiner中选择max(id( 1作为next_id;,但是,如果删除最后一个插入的行,您会遇到错误的ID。为了避免,您可以在SQL插入语句中分配Next_ID:
$sql = "INSERT INTO maskiner (id, column_1, column_2, column_3) VALUES ('$next_id','$value_1', '$value_2', '$value_3')";