提交資料到伺服器端資料庫都是用的form表單,這是最普通最簡單提交資料的方法,填寫表單後,post提交到後台.php文件,處理完後回到指定頁面,最後,頁面就重新刷新了一遍,顯示預想的頁面。 以下這篇文章就來透過範例來給大家詳解一下php表單提交到資料庫。
一般朋友逛一些網站的時候,想使用網站或看到更多網站裡的內容,網站會要求用戶進行新用戶的註冊,網站會把新用戶的註冊資訊存入資料庫中,需要的時候再進行提取。
這樣網站就會先建立自己的資料庫和對應的表,我們這裡使用php建立一個簡單的資料庫和表,使用phpMyAdmin來建立MySql資料庫和表。例如建立一個test資料庫,其範例的程式碼如下所示:
<?php // 创建连接 $conn = new mysqli("localhost", "uesename", "password"); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error);} // 创建数据库 $sql = "CREATE DATABASE test"; if ($conn->query($sql) === TRUE) { echo "数据库创建成功"; } else { echo "Error creating database: " . $conn->error; } $conn->close(); ?>
然後使用CREATE TABLE 語句用於建立 MySQL 表,設定如下幾個欄位。
id : 它是唯一的,類型為 int ,並選擇主鍵。
uesrname : 使用者名,類型為 varchar, 長度為30。
password : 密碼,類型為 varchar, 長度為30。
confirm:確認密碼,類型為 varchar,長度為30。
email : 郵箱,類型為 varchar, 長度為30。
接著使用sql語句來建立資料庫表,其程式碼顯示如下:
<?php // 创建连接 $conn = new mysqli("localhost", "uesename", "password","test"); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 使用 sql 创建数据表 $sql = "CREATE TABLE login ( id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(30) NOT NULL, password VARCHAR(30) NOT NULL, confirm VARCHAR(30) NOT NULL, email VARCHAR(30) NOT NULL, )ENGINE=InnoDB DEFAULT CHARSET=utf8 "; if ($conn->query($sql) === TRUE) { echo "Table MyGuests created successfully"; } else { echo "创建数据表错误: " . $conn->error; } $conn->close(); ?>
上面我們建立好了資料庫和表,下面建立一個簡單的表單註冊的前端頁面,這裡的表單頁面很簡單,使用者名,密碼,密碼確認,註冊郵箱等等幾個簡單的文字方塊。其程式碼如下:
<!DOCTYPE html> <html> <head> <title>用户注册页面</title> <meta charset="UTF-8"/> <style type="text/css"> *{margin:0px;padding:0px;} ul{ width:400px; list-style:none; margin:50px auto; } li{ padding:12px; position:relative; } label{ width:80px; display:inline-block; float:left; line-height:30px; } input[type='text'],input[type='password']{ height:30px; } img{ margin-left:10px; } input[type="submit"]{ margin-left:80px; padding:5px 10px; } </style> </head> <body> <form action="zhuce.php" method="post"> <ul> <li> <label>用户名:</label> <input type="text" name="username" placeholder="请输入注册账号"/> </li> <li> <label>密 码:</label> <input type="password" name="password" placeholder="请输入密码" /> </li> <li> <label>确认密码:</label> <input type="password" name="confirm" placeholder="请再次输入密码" /> </li> <li> <label>邮 箱:</label> <input type="text" name="email" placeholder="请输入邮箱"/> </li> <li> <input type="submit" value="注册" /> </li> </ul> </form> </body> </html>
接下來就需要使用php程式碼來實作新使用者提交的資訊給提交到資料庫,使用POST方式進行值的傳遞和取得。
首先需要連接前面建立完成的資料庫和表,因為新用戶註冊的用戶名,密碼等資訊需要儲存到表中的對應欄位裡面。存入資料庫表之前先對提交的資料進行一些判斷驗證,例如不符合要求的用戶名,郵箱等需要有過濾和錯誤的提示,還要防止用戶名如果被其他用戶註冊,則需要提示您將不能再使用這個用戶名,這是先讀取資料庫已經存在的用戶名,然後再進行判斷。
簡單來說就是將表單提交的資料都存入變數,然後進行密碼和驗證碼的判斷,都正確以後,將使用者資訊存入資料庫並將資料庫存放使用者資訊的表中所有資料提取列印出來。
說穿了,後半句就是資料存入和提取。其具體的程式碼如下所示:
<?php session_start(); header("Content-type:text/html;charset=utf-8"); $link = mysqli_connect('localhost','root','root','test'); if (!$link) { die("连接失败:".mysqli_connect_error()); } $username = $_POST['username']; $password = $_POST['password']; $confirm = $_POST['confirm']; $email = $_POST['email']; if($username == "" || $password == "" || $confirm == "" || $email == "") { echo "<script>alert('信息不能为空!重新填写');window.location.href='zhuce.html'</script>"; } elseif ((strlen($username) < 3)||(!preg_match('/^\w+$/i', $username))) { echo "<script>alert('用户名至少3位且不含非法字符!重新填写');window.location.href='zhuce'</script>"; //判断用户名长度 }elseif(strlen($password) < 5){ echo "<script>alert('密码至少5位!重新填写');window.location.href='zhuce.html'</script>"; //判断密码长度 }elseif($password != $confirm) { echo "<script>alert('两次密码不相同!重新填写');window.location.href='zhuce.html'</script>"; //检测两次输入密码是否相同 } elseif (!preg_match('/^[\w\.]+@\w+\.\w+$/i', $email)) { echo "<script>alert('邮箱不合法!重新填写');window.location.href='zhuce.html'</script>"; //判断邮箱格式是否合法 } elseif(mysqli_fetch_array(mysqli_query($link,"select * from login where username = '$username'"))){ echo "<script>alert('用户名已存在');window.location.href='zhuce.html'</script>"; } else{ $sql= "insert into login(username, password, confirm, email)values('$username','$password','$confirm','$email')"; //插入数据库 if(!(mysqli_query($link,$sql))){ echo "<script>alert('数据插入失败');window.location.href='zhuce.html'</script>"; }else{ echo "<script>alert('注册成功!)</script>"; } } ?>
朋友們可以自己動手進行各種操作和嘗試,熟練以後就會對表單操作,資料庫的操作有一定深入的理解,為以後的開發打下良好的基礎。
以上是php表單怎麼提交到資料庫? (詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

TheSecretTokeEpingAphp-PowerEdwebSiterUnningSmoothlyShyunderHeavyLoadInVolvOLVOLVOLDEVERSALKEYSTRATICES:1)emplactopCodeCachingWithOpcachingWithOpCacheToreCescriptexecution Time,2)使用atabasequercachingCachingCachingWithRedataBasEndataBaseLeSendataBaseLoad,3)

你應該關心DependencyInjection(DI),因為它能讓你的代碼更清晰、更易維護。 1)DI通過解耦類,使其更模塊化,2)提高了測試的便捷性和代碼的靈活性,3)使用DI容器可以管理複雜的依賴關係,但要注意性能影響和循環依賴問題,4)最佳實踐是依賴於抽象接口,實現鬆散耦合。

是的,優化papplicationispossibleandessential.1)empartcachingingcachingusedapcutorediucedsatabaseload.2)優化的atabaseswithexing,高效Quereteries,and ConconnectionPooling.3)EnhanceCodeWithBuilt-unctions,避免使用,避免使用ingglobalalairaiables,並避免使用

theKeyStrategiestosigantificallyBoostPhpaPplicationPerformenCeare:1)UseOpCodeCachingLikeLikeLikeLikeLikeCacheToreDuceExecutiontime,2)優化AtabaseInteractionswithPreparedStateTementStatementStatementAndProperIndexing,3)配置

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增強codemodocultion,可驗證性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

選擇DependencyInjection(DI)用於大型應用,ServiceLocator適合小型項目或原型。 1)DI通過構造函數注入依賴,提高代碼的測試性和模塊化。 2)ServiceLocator通過中心註冊獲取服務,方便但可能導致代碼耦合度增加。

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)啟用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替換loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

phpemailvalidation invoLvesthreesteps:1)格式化進行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。