Php 将用户输入插入数组,然后插入sqlite数据库
三个月后就要交作业了,我想今天就开始学习和实验PHP,所以如果我马虎的话,请原谅我 我试图创建一个简单的表单,它接受用户输入并将其发送到sqlite数据库 我有一个版本,可以创建和连接fine,并在数组中插入具有预定义数据的数据。我想删除这些数据,在html中有三个名为“first name”、“last name”和“age”的输入字段,它们被输入到名为$data的数组中,然后被发送到sqlite数据库。接下来,我计划添加输入字段,但我很难理解它们是如何工作的,以及如何在数组中适当地格式化数据。如果您能提供一些这样做的建议,我们将不胜感激。忽略我的第二个foreach循环,我只想在屏幕上查看我的数据 以下是我目前的代码:Php 将用户输入插入数组,然后插入sqlite数据库,php,html,mysql,arrays,sqlite,Php,Html,Mysql,Arrays,Sqlite,三个月后就要交作业了,我想今天就开始学习和实验PHP,所以如果我马虎的话,请原谅我 我试图创建一个简单的表单,它接受用户输入并将其发送到sqlite数据库 我有一个版本,可以创建和连接fine,并在数组中插入具有预定义数据的数据。我想删除这些数据,在html中有三个名为“first name”、“last name”和“age”的输入字段,它们被输入到名为$data的数组中,然后被发送到sqlite数据库。接下来,我计划添加输入字段,但我很难理解它们是如何工作的,以及如何在数组中适当地格式化数据
<!DOCTYPE html>
<html>
<head>
<title>Data Input</title>
<link href="css/style.css" type="text/css" rel="stylesheet" />
</head>
<body>
<?php
try {
$dbh = new PDO('sqlite:mydb.sqlite3');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->exec("CREATE TABLE IF NOT EXISTS test (
firstName VARCHAR(30),
lastName VARCHAR(30),
age INTEGER)"
);
$data = array(
array('firstName' => 'Billy',
'lastName' => 'Bob',
'age' => '18'),
array('firstName' => 'Bill',
'lastName' => 'Bob',
'age' => '32')
);
$insert = "INSERT INTO test (firstName, lastName, age)
VALUES (:firstName, :lastName, :age)";
$stmt = $dbh->prepare($insert);
$stmt->bindParam('firstName', $firstName);
$stmt->bindParam('lastName', $lastName);
$stmt->bindParam('age', $age);
foreach ($data as $m) {
$firstName = $m['firstName'];
$lastName = $m['lastName'];
$age = $m['age'];
$stmt->execute();
}
$result = $dbh->query('SELECT * FROM test');
foreach ($result as $row) {
echo "First Name: " . $row['firstName'] . " ";
echo "Last Name: " . $row['lastName'] . " ";
echo "Age: " . $row['age'] . "<br>" . " ";
}
$dbh = null;
}
catch(PDOException $e) {
// Print PDOException message
echo $e->getMessage();
}
?>
</body>
</html>
要生成与$data字段格式相同的表单,还可以使用PHP或动态使用jQuery生成该表单:
<?php
if($_SERVER['REQUEST_METHOD'] !== 'POST'){
?>
<form method="post">
<input type="text" name="firstName[0]"/>
<input type="text" name="lastName[0]"/>
<input type="number" name="age[0]" min="1" max="99"/>
<input type="text" name="firstName[1]"/>
<input type="text" name="lastName[1]"/>
<input type="number" name="age[1]" min="1" max="99"/>
<input type="text" name="firstName[2]"/>
<input type="text" name="lastName[2]"/>
<input type="number" name="age[2]" min="1" max="99"/>
<input type="submit">
</form>
<?php
}else{
unset($_POST['submit']);
$data=$_POST;
// ... now do your database insert here.
}
您是在询问如何在登录页上访问PHP表单结果吗?我是在询问如何从html输入字段收集用户输入,提交时将其发送到$data数组,然后提交到我的sqlite数据库。对不起,如果我含糊不清,难以解释我想做什么。更具体地说,像数组'firstName'=>$firstName这样的东西是否有效?但是,在提交时如何将用户输入从字段保存到该变量中。如果您想要比每次编写循环和回音更容易调试巡更输出,请尝试PHP dBug。它可以节省大量的头发拉扯。。。特别是对于更复杂的数组/对象。非常感谢,非常好。抱歉说得含糊不清。猜你的$data=$\u POST;正当