十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
把來(lái)自表單的數(shù)據(jù)插入數(shù)據(jù)庫(kù)
10年積累的網(wǎng)站設(shè)計(jì)、做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有靖宇免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
現(xiàn)在,我們創(chuàng)建一個(gè) HTML 表單,這個(gè)表單可把新記錄插入 "Persons" 表。
這是這個(gè) HTML 表單:
html
body
form?action="insert.php"?method="post"
Firstname:?input?type="text"?name="firstname"?/
Lastname:?input?type="text"?name="lastname"?/
Age:?input?type="text"?name="age"?/
input?type="submit"?/
/form
/body
/html
當(dāng)用戶點(diǎn)擊上例中 HTML 表單中的提交按鈕時(shí),表單數(shù)據(jù)被發(fā)送到 "insert.php"。"insert.php" 文件連接數(shù)據(jù)庫(kù),并通過(guò) $_POST 變量從表單取回值。然后,mysql_query() 函數(shù)執(zhí)行 INSERT INTO 語(yǔ)句,一條新的記錄會(huì)添加到數(shù)據(jù)庫(kù)表中。
下面是 "insert.php" 頁(yè)面的代碼:
?php
$con?=?mysql_connect("localhost","peter","abc123");
if?(!$con)
{
die('Could?not?connect:?'?.?mysql_error());
}
mysql_select_db("my_db",?$con);
$sql="INSERT?INTO?Persons?(FirstName,?LastName,?Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if?(!mysql_query($sql,$con))
{
die('Error:?'?.?mysql_error());
}
echo?"1?record?added";
mysql_close($con)
?
您好,寫(xiě)一個(gè)專門用于連接數(shù)據(jù)庫(kù)的文件:db_conn.php 如下:
?php
define("DBSERVER","localhost");
define("USER","root");
define("PASSWORD","your password");
define("DB","dbName");
function connectMySQL()
{
@mysql_pconnect(DBSERVER,USER,PASSWORD) or die("服務(wù)器繁忙,請(qǐng)刷新后再嘗試建立連接");
@mysql_select_db(DB) or die("數(shù)據(jù)庫(kù)正在連接中。。。");
}
connectMySQL();
mysql_query("set names utf8");
?
然后在需要使用到連接數(shù)據(jù)庫(kù)的網(wǎng)頁(yè)加入:
require("db_conn.php");
首先你要建立一個(gè)表,例如是注冊(cè)的用戶表user
,里面的結(jié)構(gòu)有字段
id,
name,nickname,email等。
然后在你的表單處form
action="a.php"
method="post"
name="regform"(如果有圖片上傳,還要加上enctype="multipart/form-data")
,那么點(diǎn)擊表單提交按紐后,此表單將會(huì)交給處理頁(yè)a.php來(lái)作處理。
如果簡(jiǎn)單點(diǎn),你就直接可以將表單傳遞過(guò)來(lái)的數(shù)據(jù)$_POST,直接用sql插入語(yǔ)句,insert
into來(lái)插入到數(shù)據(jù)庫(kù),表user中。例如insert
into
user
set
name='".$_POST['name']."'.............................
你把插入數(shù)據(jù)和顯示放在同一個(gè)頁(yè)面..
例如.
index.php是顯示表單的頁(yè)面..
然后他的form的action參數(shù)是去第二個(gè)頁(yè)面input.php
然后就在input.php..執(zhí)行數(shù)據(jù)插入并且顯示內(nèi)容
index.php的內(nèi)容
input.php的內(nèi)容
$id
=
$_POST['id'];
/*
執(zhí)行數(shù)據(jù)插入的語(yǔ)句
*/
echo
$id;
使用mysql函數(shù)mysqli函數(shù)連接操作數(shù)據(jù)可即可,或者使用PDO
使用mysqli步驟:
1. 連接MySQL數(shù)據(jù)庫(kù)
2. 判斷是否連接成功
3. 選擇數(shù)據(jù)庫(kù)
(前三步可簡(jiǎn)寫(xiě)成:$link = @mysqli_connect('localhost', 'root', '', 'lx') or exit('數(shù)據(jù)庫(kù)連接失敗');)
4. 設(shè)置字符集
5. 準(zhǔn)備SQL語(yǔ)句
6. 向MySQL服務(wù)發(fā)送SQL語(yǔ)句
7. 解析處理結(jié)果集
8. 釋放結(jié)果集,關(guān)閉數(shù)據(jù)庫(kù)連接
案例:
?php
header('Content-type:text/html;charset=utf-8');
//1.連接數(shù)據(jù)庫(kù)服務(wù)器??mysqli??mysql?-u?root?-p
$link?=?@mysqli_connect('localhost','root','');
//var_dump($link);
//2.判斷連接是否成功??信息提示GBK編碼
if(mysqli_connect_errno()){
exit('數(shù)據(jù)庫(kù)連接失敗原因:'.mysqli_connect_error());
}
//3.選擇數(shù)據(jù)庫(kù)??連接標(biāo)識(shí)??數(shù)據(jù)庫(kù)名稱
if(!mysqli_select_db($link,?'wz')){
exit('數(shù)據(jù)庫(kù)選擇失敗');
}
//4.設(shè)置字符集
mysqli_set_charset($link,?'utf8');
//5.準(zhǔn)備SQL
$username?=?'zhangsan';
$password?=?md5('12345');
$pic?=?'32545.jpg';
$sql?=?"insert?into?user2(uname,password,pic)?values('{$username}','{$password}','{$pic}')";
/*?echo?$sql;
exit;?*/
//6.執(zhí)行SQL
$res?=?mysqli_query($link,?$sql);
//7.判斷執(zhí)行結(jié)果
if($res){
//成功
echo?'成功';
}else{
//失敗
echo?'失敗';
}
//8.關(guān)閉數(shù)據(jù)庫(kù)連接
mysqli_close($link);
1. 嘗試設(shè)置一個(gè)頁(yè)面模板
1)拷貝一個(gè)index.php并改名為其它名,如list.php;
2)在list.php頁(yè)面最頂部添加
?php /*
Template Name: 友鏈
*/
?
以上兩步就可以創(chuàng)建一個(gè)頁(yè)面模板了,修改并保存好這個(gè)文件后,創(chuàng)建一個(gè)新頁(yè)面或者修改已存在的頁(yè)面。在右下邊有個(gè)“頁(yè)面模板”的面板,在下拉菜單中選中“友鏈”后保存就可以了。
然后在頁(yè)面中添加任何內(nèi)容,包括html代碼就可以顯示了??墒俏业男枨笫且约和瓿蒔HP代碼獲取數(shù)據(jù)并展示,它不能這么做。
2. 調(diào)用 WordPress 的 API實(shí)現(xiàn)URL正確跳轉(zhuǎn)
這種方法的自由度較高,并且可以創(chuàng)建非WordPress格式的URL。比如我們要把 轉(zhuǎn)交給主題文件夾下的 /custom/list.php 來(lái)處理,就可以用這種方式來(lái)處理。這種方法用到 template redirect 鉤子,template redirect 是 WordPress 在預(yù)處理好所有參數(shù)設(shè)置之后決定調(diào)用主題模板的時(shí)候調(diào)用的。
在functions.php模板函數(shù)文件中添加以下實(shí)例代碼:
function loadCustomTemplate($template) {
global $wp_query;
if(!file_exists($template))return;
$wp_query-is_page = true;
$wp_query-is_single = false;
$wp_query-is_home = false;
$wp_query-comments = false;
// if we have a 404 status
if ($wp_query-is_404) {
// set status of 404 to false
unset($wp_query-query["error"]);
$wp_query-query_vars["error"]="";
$wp_query-is_404=false;
}
// change the header to 200 OK
header("HTTP/1.1 200 OK");
//load our template
include($template);
exit;
}
function templateRedirect() {
$basename = basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['QUERY_STRING']);
loadCustomTemplate(TEMPLATEPATH.'/custom/'."/$basename.php");
}
add_action('template_redirect', 'templateRedirect');
這樣就實(shí)現(xiàn)了 WordPress 查找 /custom 文件夾下的 php 文件,并且將相匹配的 URL 請(qǐng)求轉(zhuǎn)交給對(duì)應(yīng)的 php 文件來(lái)處理的效果,與此同時(shí),這個(gè) php 文件還保持了對(duì) WordPress API 的調(diào)用,因此留給我們的空間非常大。
接下來(lái)就可以在 /custom 文件夾下自定義一個(gè)list.php文件然后通過(guò)鏈接訪問(wèn)。
3. 添加頁(yè)面內(nèi)容,獲取自定義數(shù)據(jù)庫(kù)/表中的內(nèi)容
然后就可以根據(jù)需要自己需要來(lái)實(shí)現(xiàn)自己想要的功能,這里需要有以下幾點(diǎn)要處理:
1)如何操作數(shù)據(jù)庫(kù)
WordPress提供了一個(gè)全局變量$wpdb,并將其實(shí)例化為wpdb類的對(duì)象。這樣我們就可以直接使用$wpdb來(lái)調(diào)用所有的數(shù)據(jù)庫(kù)操作函數(shù)。通過(guò)這個(gè)$wpdb對(duì)象,我們可以對(duì)WordPress數(shù)據(jù)庫(kù)進(jìn)行任何操作,包括建表、查詢、刪除、更新等。使用$wpdb-get_results實(shí)現(xiàn)執(zhí)行sql語(yǔ)句操作數(shù)據(jù)庫(kù),并獲取結(jié)果。
global $wpdb;
$sql= "SELECT * FROM ".$wpdb-prefix.table;
$a = $wpdb-get_results($sql);