新聞中心
在Web開發(fā)中,經(jīng)常需要將用戶提交的數(shù)據(jù)存儲到數(shù)據(jù)庫中。而提交數(shù)據(jù)的方式有很多種,其中POST方式是最常用的一種。本文將介紹如何使用PHP通過POST方式向數(shù)據(jù)庫提交數(shù)據(jù)。

一、前置知識
在使用POST方式提交數(shù)據(jù)前,需要對HTML表單、PHP中的$_POST變量以及數(shù)據(jù)庫進行了解。
HTML表單是用來接收用戶輸入并將數(shù)據(jù)發(fā)送到服務(wù)器端,使用方法如下:
“`html
提交
“`
上述代碼中定義了一個表單,其中method屬性值為post,表示使用POST方式提交數(shù)據(jù)。action屬性值為submit.php,表示將數(shù)據(jù)發(fā)送到submit.php頁面進行處理。表單中有兩個輸入框,分別是用戶名和密碼,用于接收用戶輸入的數(shù)據(jù)。
PHP中的$_POST變量是用來接收通過POST方式提交的數(shù)據(jù),使用方法如下:
“`php
$username = $_POST[‘username’];
$password = $_POST[‘password’];
“`
上述代碼中$_POST[‘username’]表示接收名為username的輸入框的值,將其賦值給$username變量。同理,將接收密碼輸入框的值并賦值給$password變量。
數(shù)據(jù)庫是用來存儲數(shù)據(jù)的一個系統(tǒng),PHP中可以通過MySQLi擴展(面向?qū)ο螅┗騇ySQL函數(shù)庫(過時)來操作數(shù)據(jù)庫。本文將以MySQLi為例進行講解。
二、建立數(shù)據(jù)庫連接
在使用MySQLi操作數(shù)據(jù)庫之前,需要先建立與數(shù)據(jù)庫的連接。使用MySQLi_connect()函數(shù)建立連接時,需要提供以下四個參數(shù):
1. 目標主機地址(默認為localhost)
2. 數(shù)據(jù)庫的用戶名
3. 數(shù)據(jù)庫密碼
4. 要連接的數(shù)據(jù)庫名稱
下面是建立連接的示例代碼:
“`php
$host = “l(fā)ocalhost”;
$username = “root”;
$password = “123456”;
$dbname = “mydb”;
$conn = mysqli_connect($host, $username, $password, $dbname);
if (!$conn) {
die(“數(shù)據(jù)庫連接失?。骸?. mysqli_connect_error());
}
“`
上述代碼中,$host表示數(shù)據(jù)庫的主機地址,$username表示數(shù)據(jù)庫的用戶名,$password表示數(shù)據(jù)庫的密碼,$dbname表示要連接的數(shù)據(jù)庫名稱。MySQLi_connect()函數(shù)將這些參數(shù)傳入后,返回一個連接對象并將其賦值給變量$conn。若連接失敗,則輸出錯誤信息并終止代碼執(zhí)行。
三、向數(shù)據(jù)庫提交數(shù)據(jù)
當表單數(shù)據(jù)通過POST方式發(fā)送到服務(wù)器端后,可以通過$_POST變量讀取這些數(shù)據(jù),并將其存儲到數(shù)據(jù)庫中。為了實現(xiàn)數(shù)據(jù)的存儲,需要先創(chuàng)建一張數(shù)據(jù)表。以用戶表為例,可以定義如下表結(jié)構(gòu):
“`sql
CREATE TABLE users (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
eml VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
“`
上述代碼中定義了一張名為users的表,其中有以下五個字段:
1. id:自增長的唯一標識符,作為主鍵
2. username:用戶名字段,不允許為空
3. password:密碼字段,不允許為空
4. eml:電子郵件字段,允許為空
5. reg_date:注冊時間字段,創(chuàng)建數(shù)據(jù)行時自動生成時間戳
當用戶通過表單輸入用戶名和密碼后,可以通過以下代碼將這些數(shù)據(jù)存儲到數(shù)據(jù)庫中:
“`php
$username = $_POST[‘username’];
$password = $_POST[‘password’];
$sql = “INSERT INTO users (username, password) VALUES (‘$username’, ‘$password’)”;
if (mysqli_query($conn, $sql)) {
echo “數(shù)據(jù)提交成功”;
} else {
echo “數(shù)據(jù)提交失?。骸?. mysqli_error($conn);
}
“`
上述代碼中,$sql表示構(gòu)建的SQL語句。使用INSERT INTO語句向users表中插入一條新數(shù)據(jù)行,并將用戶名和密碼字段賦值為輸入框中的值。當SQL執(zhí)行成功時,輸出提交成功的提示信息。反之,輸出錯誤信息。
四、完整的示例代碼
將前面所述的代碼整合到一起,可以得到一個完整的示例代碼如下:
“`php
PHP提交數(shù)據(jù)到MySQL數(shù)據(jù)庫
用戶注冊
用戶名
密碼
郵箱
提交
$host = “l(fā)ocalhost”;
$username = “root”;
$password = “123456”;
$dbname = “mydb”;
// 建立數(shù)據(jù)庫連接
$conn = mysqli_connect($host, $username, $password, $dbname);
if (!$conn) {
die(“數(shù)據(jù)庫連接失?。骸?. mysqli_connect_error());
}
// 向數(shù)據(jù)庫提交數(shù)據(jù)
if ($_SERVER[“REQUEST_METHOD”] == “POST”) {
$username = $_POST[‘username’];
$password = $_POST[‘password’];
$eml = $_POST[’eml’];
$sql = “INSERT INTO users (username, password, eml) VALUES (‘$username’, ‘$password’, ‘$eml’)”;
if (mysqli_query($conn, $sql)) {
echo “數(shù)據(jù)提交成功”;
} else {
echo “數(shù)據(jù)提交失?。骸?. mysqli_error($conn);
}
}
// 關(guān)閉數(shù)據(jù)庫連接
mysqli_close($conn);
?>
“`
運行此程序后,在網(wǎng)頁中填寫用戶名、密碼和電子郵件地址,并單擊“提交”按鈕,將會插入新的數(shù)據(jù)行到users表中。
五、
本文介紹了如何使用PHP通過POST方式向數(shù)據(jù)庫提交數(shù)據(jù)。具體來說,需要先在HTML表單中定義好要提交的數(shù)據(jù),然后在PHP中連接到數(shù)據(jù)庫并將數(shù)據(jù)插入到指定的數(shù)據(jù)表中。對于初學者而言,掌握這種基本的數(shù)據(jù)存儲方式是非常重要的。
相關(guān)問題拓展閱讀:
- php多行表單數(shù)據(jù)插入數(shù)據(jù)庫,怎么判斷$_POST[…]數(shù)組是否為空?
php多行表單數(shù)據(jù)插入數(shù)據(jù)庫,怎么判斷$_POST[…]數(shù)組是否為空?
if (empty($_POST)) {
螞山 echo “空”;
} else {
悶?zāi)ブ衑cho “不游凳空”;
關(guān)于php post 數(shù)據(jù)庫的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)頁題目:PHP如何使用POST方式向數(shù)據(jù)庫提交數(shù)據(jù)(phppost數(shù)據(jù)庫)
URL鏈接:http://m.fisionsoft.com.cn/article/djpegid.html


咨詢
建站咨詢
