Php 通过html表单保存到MySQL数据库

Php 通过html表单保存到MySQL数据库,php,mysql,database,forms,mysqli,Php,Mysql,Database,Forms,Mysqli,我正在制作一个php页面,从数据库表中检索数据,并将其放入一个表中,供用户通过MySQLi命令查看 我想知道我应该如何处理相反的情况。我希望用户能够在文本框中输入信息,然后单击页面底部名为“保存”的按钮,在保存到数据库之前提示用户“确定”。如果用户单击“是”,则新条目将插入数据库 我有以下代码来创建标签和文本框: <FORM> ID: <input type="text" name="id"><br /> NM: <input type="text" n

我正在制作一个php页面,从数据库表中检索数据,并将其放入一个表中,供用户通过MySQLi命令查看

我想知道我应该如何处理相反的情况。我希望用户能够在文本框中输入信息,然后单击页面底部名为“保存”的按钮,在保存到数据库之前提示用户“确定”。如果用户单击“是”,则新条目将插入数据库

我有以下代码来创建标签和文本框:

<FORM>
ID: <input type="text" name="id"><br />
NM: <input type="text" name="nm"><br />
Company: <input type="text" name="company"><br />
Address: <input type="text" name="address"><br />
City: <input type="text" name="city"><br />
Zip: <input type="text" name="zip"><br />
State: <input type="text" name="state"><br />
Phone: <input type="text" name="phone"><br />
Website: <input type="text" name="web_site"><br />
</FORM>

ID:
纳米:
公司:
地址:
城市:
Zip:
状态:
电话:
网站:
但是,当涉及到“保存”按钮时,我可以很好地实现该按钮,但是如何将输入的信息保存到数据库中呢

我最初的想法是找到用户输入的值。一般来说,我不熟悉PHP和WEB开发,但我需要知道如何获取文本框中文本的值。我需要通过PHP Post方法筛选所有的值吗

一旦我有了用户想要输入的信息,我想也许MySQLi有一个insert函数,我在这里找到了。然后,它只是一个快速插入,在用户在提示下给出“是”之后,它就进入了数据库

我的想法对吗?有没有更有效的方法

非常感谢您的帮助。我环顾四周,寻找与我的场景类似的问题和解决方案,但没有=(

谢谢

编辑:

以下是我在agentprocess.php上的代码,操作表单将信息发送到该代码:

<?php
$agent_nm = $_POST['nm']; // gather all the variables
$company = $_POST['company'];
$address = $_POST['address'];
$city = $_POST['city'];
$zip = $_POST['zip'];
$state = $_POST['state'];
$phone = $_POST['phone'];
$web_site = $_POST['web_site'];
$batch_id = $_POST['batch_id']; // added batch id
//connect
$conn = new mysqli('local', 'admin', 'pass', 'DB');
    if(mysqli_connect_errno()) {
        exit('Connect failed: '. mysqli_connect_error());
    }
//generate the query (doesn't add id because id is autoincremented)
$query = "INSERT INTO t_agent VALUES (NULL, " . $agent_nm . ", " . $company . ", " . $address . ", " . $city . ", " . $zip . ", " . $state . ", " . $phone . ", " . $web_site . ", " . $batch_id . ")";

//insert and close.
mysqli_query($conn, $query);
mysqli_close($conn);

您需要使用
表单
。是的,使用元素中的
名称
属性,您可以筛选
$\u POST
(例如
$\u POST['company']
)对于要存储到DB中的值。这里有一个。使用MYSQLi语句而不是像在eg中那样使用mysql。

您需要使用
表单
。是的,使用元素中的
名称
属性,您可以筛选
$\u POST
(例如
$\u POST['company']
)对于要存储到DB中的值,这里有一个.Use MYSQLi语句,而不是像示例中的mysql.

非常简单的示例中那样,将标签标签添加到标签中以供输入,并将其放入表单中

<form method="post" action="process.php" id="myForm" name="myForm" >
<label for="ID">ID</label>:  <input type="text" name="ID" /><br />
<label for="nm">NM:</label> <input type="text" name="nm"><br />
<label for="company">Company:</label> <input type="text" name="company"><br />
<label for="address">Address:</label> <input type="text" name="address"><br />
<label for="city">City</label>: <input type="text" name="city"><br />
<label for="zip">Zip</label>: <input type="text" name="zip"><br />
<label for="state">State</label>: <input type="text" name="state"><br />
<label for="phone">Phone</label>: <input type="text" name="phone"><br />
<label for="web_site">Website</label>: <input type="text" name="web_site"><br />
<input type="submit" name="submit" />// this is your submit button
</form>

然后,您可以使用您描述的mysqli将值插入数据库,如果您需要有关问题的mysqli部分的任何帮助,请随意评论,因为您在原始问题中发布了链接,所以我没有将其包括在这里。

非常简单的示例,将标签标签添加到标签中以供您输入,并将其放在fo中rm

<form method="post" action="process.php" id="myForm" name="myForm" >
<label for="ID">ID</label>:  <input type="text" name="ID" /><br />
<label for="nm">NM:</label> <input type="text" name="nm"><br />
<label for="company">Company:</label> <input type="text" name="company"><br />
<label for="address">Address:</label> <input type="text" name="address"><br />
<label for="city">City</label>: <input type="text" name="city"><br />
<label for="zip">Zip</label>: <input type="text" name="zip"><br />
<label for="state">State</label>: <input type="text" name="state"><br />
<label for="phone">Phone</label>: <input type="text" name="phone"><br />
<label for="web_site">Website</label>: <input type="text" name="web_site"><br />
<input type="submit" name="submit" />// this is your submit button
</form>

然后,您可以使用您描述的mysqli将值插入数据库,如果您需要有关问题的mysqli部分的任何帮助,请随时发表评论,因为您在原始问题中发布了链接,所以我没有将其包括在这里。

这对于web开发初学者来说是一项简单但有点复杂的任务

所以我要给你一个完整的例子,说明你需要做什么

要执行保存按钮检查,最快的方法是使用javascript确认对话框,如果确认,还可以使用javascript提交表单

Mysql插入部分很简单,您需要检查在$\u REQUSET中是否有您通过表单提交的数据(这比$\u POST或$\u GET更有效,因为它可以同时捕获这两个数据),然后连接到db并执行插入查询

本例对所有内容进行了说明:

但是请使用一些模板引擎,比如Smarty,因为在一个没有模板的文件中使用php、javascript和html是非常糟糕的,长期使用只会给您带来问题。

我想我在pastebin上的示例中非常清楚,但是如果您有一些问题,请随时提问


只是补充一下,我已经从HTML表单中删除了ID,因为在MySQL中管理ID的最佳解决方案是自动增量选项,您可以在创建表并将其设置为特定字段时配置它。通常它是ID,并且必须是整数。

这对于web开发初学者来说是一项简单但有点复杂的任务

所以我要给你一个完整的例子,说明你需要做什么

要执行保存按钮检查,最快的方法是使用javascript确认对话框,如果确认,还可以使用javascript提交表单

Mysql插入部分很简单,您需要检查在$\u REQUSET中是否有您通过表单提交的数据(这比$\u POST或$\u GET更有效,因为它可以同时捕获这两个数据),然后连接到db并执行插入查询

本例对所有内容进行了说明:

但是请使用一些模板引擎,比如Smarty,因为在一个没有模板的文件中使用php、javascript和html是非常糟糕的,长期使用只会给您带来问题。

我想我在pastebin上的示例中非常清楚,但是如果您有一些问题,请随时提问


只是补充一下,我已经从HTML表单中删除了ID,因为在MySQL中管理ID的最佳解决方案是自动增量选项,您可以在创建表并将其设置为特定字段时进行配置。通常是ID,并且必须是整数。

您应该为PHP/MySQL使用PDO函数

id字段应为自动递增

<?php
$host= "xxx";
$username="xxx";
$password="xxx";
$database="xxx ";

// Gets data from URL parameters

$name = $_POST['nm'];
//Repeate for all other parameters

// Opens a connection to a MySQL server
try {

// DBH means "DB Handle"

// MySQL with PDO_MYSQL
 $DBH = new PDO("mysql:host=$host;dbname=$database", $username, $password);

}
catch(PDOException $e) {
    echo $e->getMessage();
}
// STH means "Statement Handle"
$STH = $DBH->prepare("INSERT INTO mytable ( id,    nm,company,address,city,zip,state,phone,web_site ) values ( NULL,:nm,:company,:address,:city,:zip,:state,:phone,:web_site)");
$STH->bindParam(':name', $name);
//Repeate for all other parameters
$STH->execute();

//# close the connection
$DBH = null;
?>

您应该为PHP/MySQL使用PDO函数

id字段应为自动递增

<?php
$host= "xxx";
$username="xxx";
$password="xxx";
$database="xxx ";

// Gets data from URL parameters

$name = $_POST['nm'];
//Repeate for all other parameters

// Opens a connection to a MySQL server
try {

// DBH means "DB Handle"

// MySQL with PDO_MYSQL
 $DBH = new PDO("mysql:host=$host;dbname=$database", $username, $password);

}
catch(PDOException $e) {
    echo $e->getMessage();
}
// STH means "Statement Handle"
$STH = $DBH->prepare("INSERT INTO mytable ( id,    nm,company,address,city,zip,state,phone,web_site ) values ( NULL,:nm,:company,:address,:city,:zip,:state,:phone,:web_site)");
$STH->bindParam(':name', $name);
//Repeate for all other parameters
$STH->execute();

//# close the connection
$DBH = null;
?>


您已经四处寻找如何在PHP中发布数据的解决方案,但没有找到任何解决方案?我想您并没有努力寻找。尝试用谷歌搜索
PHP表单发布教程
@MikeBrant抱歉,我甚至不知道使用“POST”是否正确。:)回答问题后无需删除代码。:)(我们可以硬删除包含私人信息的修订,这样我们就不必删除整个问题。)