PHP 和 AJAX MySQL 數(shù)據(jù)庫(kù)實(shí)例
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、西和網(wǎng)站維護(hù)、網(wǎng)站推廣。
AJAX XML
AJAX responseXML
AJAX 可用來與數(shù)據(jù)庫(kù)進(jìn)行交互式通信。
AJAX 數(shù)據(jù)庫(kù)實(shí)例
在下面的 AJAX 實(shí)例中,我們將演示網(wǎng)頁(yè)如何使用 AJAX 技術(shù)從 MySQL 數(shù)據(jù)庫(kù)中讀取信息。
在下拉列表中選擇一個(gè)名字 (測(cè)試說明:該實(shí)例功能未實(shí)現(xiàn))
Select a User:
在此列出用戶信息。
此列由四個(gè)元素組成:
MySQL 數(shù)據(jù)庫(kù)
簡(jiǎn)單的 HTML 表單
JavaScript
PHP 頁(yè)面
數(shù)據(jù)庫(kù)
將在本例中使用的數(shù)據(jù)庫(kù)看起來類似這樣:
idFirstNameLastNameAgeHometownJob
1PeterGriffin41QuahogBrewery
2LoisGriffin40NewportPiano Teacher
3JosephSwanson39QuahogPolice Officer
4GlennQuagmire41QuahogPilot
HTML 表單
上面的例子包含了一個(gè)簡(jiǎn)單的 HTML 表單,以及指向 JavaScript 的鏈接:
html
head
script src="selectuser.js"/script
/head
body
form
Select a User:
select name="users" onchange="showUser(this.value)"
option value="1"Peter Griffin/option
option value="2"Lois Griffin/option
option value="3"Glenn Quagmire/option
option value="4"Joseph Swanson/option
/select
/form
p
div id="txtHint"bUser info will be listed here./b/div
/p
/body
/html
例子解釋 - HTML 表單
正如您看到的,它僅僅是一個(gè)簡(jiǎn)單的 HTML 表單,其中帶有名為 "users" 的下拉列表,這個(gè)列表包含了姓名,以及與數(shù)據(jù)庫(kù)的 "id" 對(duì)應(yīng)的選項(xiàng)值。
表單下面的段落包含了名為 "txtHint" 的 div。這個(gè) div 用作從 web 服務(wù)器檢索到的信息的占位符。
當(dāng)用戶選擇數(shù)據(jù)時(shí),執(zhí)行名為 "showUser()" 的函數(shù)。該函數(shù)的執(zhí)行由 "onchange" 事件觸發(fā)。
換句話說:每當(dāng)用戶改變下拉列表中的值,就會(huì)調(diào)用 showUser() 函數(shù)。
JavaScript
這是存儲(chǔ)在 "selectuser.js" 文件中的 JavaScript 代碼:
var xmlHttp
function showUser(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="getuser.php"
url=url+"?q="+str
url=url+"sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
//Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
例子解釋:
stateChanged() 和 GetXmlHttpObject 函數(shù)與 PHP AJAX 請(qǐng)求 那一節(jié)中的相同,您可以參閱其中的相關(guān)解釋。
showUser() 函數(shù)
假如下拉列表中的項(xiàng)目被選擇,函數(shù)執(zhí)行:
調(diào)用 GetXmlHttpObject 函數(shù)來創(chuàng)建 XMLHTTP 對(duì)象
定義發(fā)送到服務(wù)器的 URL(文件名)
向 URL 添加帶有下拉列表內(nèi)容的參數(shù) (q)
添加一個(gè)隨機(jī)數(shù),以防服務(wù)器使用緩存的文件
當(dāng)觸發(fā)事件時(shí)調(diào)用 stateChanged
通過給定的 URL 打開 XMLHTTP 對(duì)象
向服務(wù)器發(fā)送 HTTP 請(qǐng)求
PHP 頁(yè)面
由 JavaScript 調(diào)用的服務(wù)器頁(yè)面,是名為 "getuser.php" 的簡(jiǎn)單 PHP 文件。
該頁(yè)面用 PHP 編寫,并使用 MySQL 數(shù)據(jù)庫(kù)。
其中的代碼執(zhí)行針對(duì)數(shù)據(jù)庫(kù)的 SQL 查詢,并以 HTML 表格返回結(jié)果:
?php
$q=$_GET["q"];
$con = mysql_connect('localhost', 'peter', 'abc123');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("ajax_demo", $con);
$sql="SELECT * FROM user WHERE id = '".$q."'";
$result = mysql_query($sql);
echo "table border='1'
tr
thFirstname/th
thLastname/th
thAge/th
thHometown/th
thJob/th
/tr";
while($row = mysql_fetch_array($result))
{
echo "tr";
echo "td" . $row['FirstName'] . "/td";
echo "td" . $row['LastName'] . "/td";
echo "td" . $row['Age'] . "/td";
echo "td" . $row['Hometown'] . "/td";
echo "td" . $row['Job'] . "/td";
echo "/tr";
}
echo "/table";
mysql_close($con);
?
例子解釋:
當(dāng)查詢從 JavaScript 被發(fā)送到這個(gè) PHP 頁(yè)面,會(huì)發(fā)生:
PHP 打開到達(dá) MySQL 服務(wù)器的連接
找到擁有指定姓名的 "user"
創(chuàng)建表格,插入數(shù)據(jù),然后將其發(fā)送到 "txtHint" 占位符
這篇文章主要介紹了PHP連接操作access數(shù)據(jù)庫(kù)實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
因?yàn)橹白龅腜ingSwitch要做一個(gè)WEB展示的前端,因?yàn)橐婚_始用了Delphi和access的結(jié)構(gòu),而Delphi與MySQL的連接又相對(duì)麻煩,最后只能選擇用PHP+Access的組合,比較奇怪,但是也合理·····
在PHP中連接access數(shù)據(jù)庫(kù)的話我們必須ADO來連接,這跟ASP中連接數(shù)據(jù)庫(kù)非常的類似。下邊給出了一段DEMO供大家參考。
?PHP
/*
創(chuàng)建ADO連接
*/
$conn
=
@new
COM("ADODB.Connection")
or
die
("ADO
Connection
faild.");
$connstr
=
"DRIVER={Microsoft
Access
Driver
(*.mdb)};
DBQ="
.
realpath("DATUM/cnbt.mdb");
$conn-Open($connstr);
/*
創(chuàng)建記錄集查詢
*/
$rs
=
@new
COM("ADODB.RecordSet");
$rs-Open("select
*
from
dbo_dirs",$conn,1,3);
/*
循環(huán)讀取數(shù)據(jù)
*/
while(!$rs-eof){
echo
"$rs-Fields["title"]-Value;
echo
"br/";
$rs-Movenext();
//將記錄集指針下移
}
$rs-close();
?
這樣運(yùn)行就沒問題了····
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
PHP連接數(shù)據(jù)庫(kù)之PHP連接MYSQL數(shù)據(jù)庫(kù)代碼
?php? ? $mysql_server_name= localhost ;? //改成自己的mysql數(shù)據(jù)庫(kù)服務(wù)器 ? $mysql_username= root ;? //改成自己的mysql數(shù)據(jù)庫(kù)用戶名 ? $mysql_password= ;? //改成自己的mysql數(shù)據(jù)庫(kù)密碼 ? $mysql_database= mycounter ; ?//改成自己的mysql數(shù)據(jù)庫(kù)名 ? $conn=mysql_connect($mysql_server_name $mysql_username $mysql_password $mysql_database);? ? $sql= CREATE?DATABASE?mycounter? DEFAULT?CHARACTER?SET?gbk?COLLATE?gbk_chinese_ci;? ? ;? ? mysql_query($sql);? ? $sql= CREATE?TABLE?`counter`? (`id`?INT( )?UNSIGNED?NOT?NULL? AUTO_INCREMENT? `count`?INT( )? UNSIGNED?NOT?NULL?DEFAULT? PRIMARY?KEY? (?`id`?)?)?TYPE?=?innodb; ;? ? mysql_select_db($mysql_database $conn);? ? $result=mysql_query($sql);? ? //echo?$sql;? ? mysql_close($conn);? ? echo?"Hello!數(shù)據(jù)庫(kù)mycounter已經(jīng)成功建立!";? ? ?
PHP連接數(shù)據(jù)庫(kù)之PHP連接ACCESS數(shù)據(jù)庫(kù)代碼方法
? ? $conn?=?new?("ADODB Connection");? ? $connstr?=?"DRIVER={Microsoft?Access?Driver?(* mdb)};?DBQ=" ?realpath("data/db mdb");? ? $conn Open($connstr);? ? $rs?=?new?("ADODB RecordSet");? ? $rs Open("select?*?from?szd_t" $conn );? ? while(!?$rs eof)?{? ? $f?=?$rs Fields( );? ? echo?$f value;? ? $rs MoveNext();? ? }? ? ?
PHP連接數(shù)據(jù)庫(kù)之PHP連接MS SQL數(shù)據(jù)庫(kù)代碼方法
安裝SQL服務(wù)器并添加PHP的MSSQL擴(kuò)展
使用以下代碼連接并測(cè)試
?php? ? $myServer?=?localhost;?//主機(jī) ? $myUser?=?sa;?//用戶名 ? $myPass?=?password;?//密碼 ? $myDB?=?Northwind;?//MSSQL庫(kù)名 ? $s?=?@mssql_connect($myServer ?$myUser ?$myPass)? ? or?die(Couldnt?connect?to?SQL?Server?on?$myServer);? ? $d?=?@mssql_select_db($myDB ?$s)? ? or?die(Couldnt?open?database?$myDB);? ? $query?=?SELECT?TitleOfCourtesy+?+FirstName+?+LastName?AS?Employee?;? ? $query? =?FROM?Employees?;? ? $query? =?WHERECountry=USA?AND?Left(HomePhone ? )?=?( );? ? $result?=?mssql_query($query);? ? $numRows?=?mssql_num_rows($result);? ? echo? h ? ?$numRows? ?Row? ?($numRows?==? ???:?s)? ?Returned?/ h ;? ? while($row?=?mssql_fetch_array($result))? ? {? ? echo? li? ?$row[Employee]? ? /li;? ? }? ? ?
PHP連接數(shù)據(jù)庫(kù)之PHP連接Oracle數(shù)據(jù)庫(kù)
PHP提供了兩套函數(shù)與Oracle連接 分別是ORA_和OCI函數(shù) 其中ORA_函數(shù)略顯陳舊 OCI函數(shù)更新?lián)f更好一些 兩者的使用語(yǔ)法幾乎相差無幾 你的PHP安裝選項(xiàng)應(yīng)該可以支持兩者的使用
?? if?($conn=Ora_Logon("user@TNSNAME" "password"))? ? {?echo?"SUCCESS?!?Connected?to?databasen";? ? }else? ? {echo?"Failed?: (?Could?not?connect?to?databasen";}? ? Ora_Logoff($conn);? ? phpinfo();? ? ?? ? lishixinzhi/Article/program/PHP/201405/30761
前邊介紹了負(fù)載均衡,mysql同步,接下來介紹tp6分布式部署多個(gè)數(shù)據(jù)庫(kù),實(shí)現(xiàn)讀寫分離。
tp6的分布式部署讀和寫仍然是一個(gè)系統(tǒng),這里我們分開操作,給用戶展示的就是從數(shù)據(jù)庫(kù),后端添加文章就是主庫(kù),然后同步到從庫(kù)。
1、配置數(shù)據(jù)庫(kù)鏈接參數(shù)
目標(biāo):實(shí)現(xiàn)隨機(jī)使用數(shù)據(jù)庫(kù)展示信息,只是讀操作。
測(cè)試:前臺(tái)可以讀取表中內(nèi)容(存放的不一致),查看是否是隨機(jī)顯示的。
打開.env文件進(jìn)行編輯
說明:
2、編輯database.php
找到deploy設(shè)置為1分布式部署,下邊不要改,都是讀,寫入的也就是后端的我們單獨(dú)建站連接主庫(kù)。
配置完成,tp6使用的是mt_rand取隨機(jī)數(shù)判斷使用哪個(gè)數(shù)據(jù)庫(kù)。
3、數(shù)據(jù)庫(kù)交互寫操作
比如瀏覽量沒必要每次都去更新數(shù)據(jù)庫(kù),可以先使用redis緩存,存夠1000的整數(shù)倍,再去更新數(shù)據(jù)庫(kù)。
4、后臺(tái)獨(dú)立,也就是寫
可以前后端分離,單獨(dú)做一個(gè)網(wǎng)站(沒有前端)使用ip訪問或者獨(dú)立的域名連接后臺(tái)。
5、上傳附件(jquery ajax跨域上傳)
使用了nginx負(fù)載均衡,肯定是多個(gè)一樣的網(wǎng)站,如果圖片存放到一個(gè)站,別的就不能訪問了,可以單獨(dú)設(shè)置一個(gè)附件(壓縮包,圖片等)服務(wù)器,可以使用二級(jí)域名連接,這就要求我們上傳附件的時(shí)候,是上傳到附件服務(wù)器。
jqueryURL
API控制器apdpic方法
說明:
也可以先傳到后臺(tái)服務(wù)器然后使用(php)ftp上傳,或者是通過curl上傳到附件服務(wù)器,感覺那樣畢竟麻煩,直接設(shè)置跨域會(huì)比較簡(jiǎn)單。
也測(cè)試了使用jsonp跨域,但是不能上傳附件。
6、thinkphp6實(shí)現(xiàn)讀寫分離(在一個(gè)站點(diǎn))
我個(gè)人是不喜歡這樣的,負(fù)載均衡應(yīng)該是均衡地讀,也就是前臺(tái)單獨(dú)一個(gè)站點(diǎn),后端的寫是另一個(gè)獨(dú)立的站點(diǎn),看個(gè)人喜好吧。
獨(dú)立后臺(tái)的優(yōu)點(diǎn):可以提升安全性,因?yàn)槲覀兊暮笈_(tái)網(wǎng)址是不公開的,避免用戶猜測(cè)一些后臺(tái)的信息。
.env配置按照1所述編輯,默認(rèn)第一個(gè)是主庫(kù)。
database.php
愿大家在新的一年心想事成,萬事如意!??!
當(dāng)前標(biāo)題:Php數(shù)據(jù)庫(kù)網(wǎng)站實(shí)例 php網(wǎng)站數(shù)據(jù)庫(kù)配置
轉(zhuǎn)載源于:http://muchs.cn/article0/dohddoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、面包屑導(dǎo)航、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容