我正在尝试从表单中获取用户输入的值,并使用php将它们保存在数据库中。这是我的dbConfig
文件:
<?php
$mysqli = new mysqli("localhost", "root", "password", "testDB");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$mysqli->query("USE testDB");
?>
这是我的Index.php
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="description" content="$1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="style.css">
<title>test</title>
<?php
include_once 'dbConfig.php';
?>
</head>
<body>
<form>
<label id="first"> First name:</label><br/>
<input type="text" name="username"><br/>
<label id="first">Password</label><br/>
<input type="password" name="password"><br/>
<label id="first">Email</label><br/>
<input type="text" name="email"><br/>
</form>
<button type="submit" name="save">save</button>
<?php
if(isset($_POST['save'])){
$query = "INSERT INTO testDB VALUES (username, password, email)";
}
?>
</body>
</html>
问题:我不确定我的方式是否正确,Index.php
中用于插入值的php代码似乎无效。
答案 0 :(得分:2)
<form>
相当于<form method="get">
,您正在使用POST数组作为提交按钮。
两者都需要匹配,因此请将其更改为<form method="post">
但是这个:
$query = "INSERT INTO testDB VALUES (username, password, email)";
字符串值要求引用它们。
即:VALUES ('username', 'password', 'email')
但是,您没有指定列,因此您需要确保列的总数与数据库中的列数相匹配。
如果没有,那么你需要指定它们。
即:
INSERT INTO testDB (col1, col2, col3) VALUES ('username', 'password', 'email')
检查查询错误。