本篇將繼續(xù)通過該實(shí)例講解與數(shù)據(jù)庫的交互方式。實(shí)例中用到的是MySQL,也可以根據(jù)自己的需要替換為其他數(shù)據(jù)庫,其連接方式可以參考PHP相關(guān)手冊(cè)。
站在用戶的角度思考問題,與客戶深入溝通,找到米東網(wǎng)站設(shè)計(jì)與米東網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋米東地區(qū)。
在下面源程序包中dbconnector.php
提供了與MySQL的連接函數(shù)。
復(fù)制代碼
代碼如下:
?php
//定義數(shù)據(jù)連接變量
define
("MYSQLHOST",
"localhost");
define
("MYSQLUSER",
"root");
define
("MYSQLPASS",
"root");
define
("MYSQLDB",
"test");
function
opendatabase(){
//連接數(shù)據(jù)庫所在服務(wù)器
$db
=
mysql_connect
(MYSQLHOST,MYSQLUSER,MYSQLPASS);
try
{
if
(!$db){
//若無法連接則提示錯(cuò)誤
$exceptionstring
=
"Error
connection
to
database:
br
/";
$exceptionstring
.=
mysql_errno().":
".mysql_error();
throw
new
exception
($exceptionstring);
}
else{
//連接數(shù)據(jù)庫(test)
mysql_select_db
(MYSQLDB,$db);
}
return
$db;
}catch
(exception
$e){
echo
$e-getmessage();
die();
}
}
?
當(dāng)鼠標(biāo)放到某個(gè)日期上時(shí)會(huì)調(diào)用functions.js中的checkfortasks函數(shù)。同時(shí)checkfortasks會(huì)加載taskchecker.php程序,它會(huì)到MySQL中查詢?cè)撊掌谙滤械膫渫浶畔?,并將結(jié)果返回到頁面中。
復(fù)制代碼
代碼如下:
?php
//調(diào)用數(shù)據(jù)庫連接程序
require_once
("dbconnector.php");
//連接數(shù)據(jù)庫
$db
=
opendatabase();
//在MySQL查詢備忘錄
$querystr
=
"SELECT
description
FROM
task
WHERE
thedate='"
.
addslashes
($_GET['thedate'])
.
"'";
//執(zhí)行SQL
if
($datequery
=
mysql_query
($querystr)){
//判斷查詢是否有值
if
(mysql_num_rows
($datequery)
0){
?
div
style="width:
150px;
background:
#FFBC37;
border-style:
solid;
border-color:
#000000;
border-width:
1px;"
div
style="padding:
10px;"
?php
//顯示備忘錄信息
while
($datedata
=
mysql_fetch_array
($datequery)){
if
(!get_magic_quotes_gpc()){
echo
stripslashes
($datedata['description']);
}
else{
echo
$datedata['description'];
}
}
?
/div
/div
?php
}
}
else{
//數(shù)據(jù)庫查詢錯(cuò)誤
echo
mysql_error();
}
//關(guān)閉數(shù)據(jù)庫
mysql_close
($db);
?
對(duì)于Ajax的使用和上一篇的原理是一樣的:1.
通過事件調(diào)用Ajax函數(shù);2.
通過函數(shù)請(qǐng)求其他PHP程序,PHP程序中可以對(duì)數(shù)據(jù)庫之類的數(shù)據(jù)源進(jìn)行讀、寫、改操作;3.
將處理結(jié)果加載到事件激發(fā)頁面。在下圖中鼠標(biāo)放到26號(hào)時(shí),Ajax會(huì)在MySQL中查詢到“Football
Match”事件并加載到當(dāng)前頁面。
源代碼下載
由 JavaScript 調(diào)用的服務(wù)器頁面,是名為 "getuser.php" 的簡(jiǎn)單 PHP 文件。
該頁面用 PHP 編寫,并使用 MySQL 數(shù)據(jù)庫。
其中的代碼執(zhí)行針對(duì)數(shù)據(jù)庫的 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 頁面,會(huì)發(fā)生:
PHP 打開到達(dá) MySQL 服務(wù)器的連接
找到擁有指定姓名的 "user"
創(chuàng)建表格,插入數(shù)據(jù),然后將其發(fā)送到 "txtHint" 占位符
看一下前端文件的編碼格式,是不是gb2312。如果是,就改前端html文件的編碼格式為utf8,如果不是,再看看數(shù)據(jù)庫保存的編碼格式??傊?,編碼格式一致,就不會(huì)出現(xiàn)亂碼。
當(dāng)前題目:php與ajax和數(shù)據(jù)庫 ajax訪問php
文章源于:http://aaarwkj.com/article28/hhpjjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、虛擬主機(jī)、標(biāo)簽優(yōu)化、云服務(wù)器、關(guān)鍵詞優(yōu)化、微信公眾號(hào)
聲明:本網(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)