繁体   English   中英

将表单中的数据插入数据库表(PDO)

[英]Insert data from form into database table (PDO)

我在这里有以下代码。 它旨在建立数据库,连接到数据库,为用户表单提供三个字段(“ name1”,“ name2”,“ digits”),并为表单提供两个选项:如果三个文本框字段之一(提交中的'name1','name2','digits')为空,则应该有一条消息告诉用户缺少哪些输入。 如果所有三个输入都存在,则应该将输入数据放入数据库中的表“ mytable”中,并将用户定向到另一个页面。

到目前为止,基于上一个条目,即使在刷新页面时也没有按下提交按钮时,仍未将数据插入表中,并且丢失的文本框消息也会显示。 谢谢您的帮助!

<?php
try{
$conn = new PDO ('mysql:host=localhost;dbname=myuser','mydb','password');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo 'ERROR: ' $e->getMessage ();
ini_set('display_errors', 1);
error_reporting(E_ALL);

}
?>  
</br>
<form action = "form" method="post">
</br>


Field1:<input type="text" id="name1" name="name1"><br/>
Field2:<input type="text" id="name2" name="name2"><br/>
Digits:<input type="text" id="digits" name="digits"><br/>
<input type="reset" name="reset">
<input type="submit" name="submit"></br>
</form>

<?php

$required = array(
'name1',
'name2',
'digits',
);
if(isset($_POST ['submit'])){
$i = 0;
foreach($required as $field)
if(empty($_POST ['$field'])){
echo "{$field} is required";}
echo "<br/>";
if($i==0) {
$q = "INSERT INTO mytable (name1, name2, digits) VALUES (:name1, :name2, :digits);";
$query = $conn->prepare($q);
$results = $query->execute(array(
":name1" => $name1,
":name2" => $name2,
":digits" => $digits
));
header ("Location: Secondpage.php");}}
?>          

您永远不会为$name1$name2$digits赋值。

大概是指$_POST['name1']等。

在foreach循环的if子句中添加else条件。 将POST的值分配给变量$ name1,$ name2和$ digits

在其他部分,添加以下行:

$$ field = $ _POST [$ field];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM