PHP MySql數據庫訪問
計應134 凌豪
1.MySql數據庫的連接
要操作MySql數據庫,首先必須與MySQl數據庫建立連接,連接MySQL服務器的語句如下:
<?php
$link = mysql_connect("localhost", "root", "root") or die("不能連接到數據庫服務器!
可能是數據庫服務器沒有啟動,或者用戶名密碼有誤!".mysql_error()); //連接Mysql服務器
if($link){
echo "數據源連接成功!";
}
?>
2.選擇MySQL數據庫
在連接到MySQl數據庫服務器之后,使用mysql_select_db()函數來選擇數據庫,其實例代碼如下:
<?php
$link = mysql_connect("localhost", "root", "root") or die("不能連接到數據庫服務器!可能是數據庫服務器沒有啟動,或者用戶名密碼有誤!".mysql_error()); //連接Mysql服務器
$db_selected=mysql_select_db("db_database18",$link);
//$db_selected=mysql_query("use db_database18",$link);
if($db_selected){
echo "數據庫選擇成功!";
}
?>
3.使用mysql_query()函數執行SQL語句
要對數據庫中的表進行操作,通常使用mysql_query()函數執行SQL語句,其基本語法格式如下:
mysql_query(string query[,resource link_indentifier])
4.向數據庫發送查詢
<?php
// 實例化mysqli類
$mysqliConn = new mysqli();
// 連接服務器,並選擇一個數據庫
// 錯誤的密碼
$mysqliConn->connect('127.0.0.1', 'root', 'root', 'db_test');
if ($mysqliConn->connect_error)
{
printf("Unable to connect to the database:%s", $mysqliConn->connect_error);
exit();
}
// 與數據庫交互
$query = 'select firstname, lastname, email from tb_test;';
// 發送查詢給MySQL
$result = $mysqliConn->query($query);
// 迭代處理結果集
while (list($firstname, $lastname, $email) = $result->fetch_row())
{
printf("%s %s's email:%s<br/>", $firstname, $lastname, $email);
}
// 關閉連接
$mysqliConn->close();
?>
5.插入、更新和刪除數據
插入、更新和刪除使用的是insert、update和delete查詢完成的,其做法實際上與select查詢相同。示例代碼如下:
<?php
// 實例化mysqli類
$mysqliConn = new mysqli();
// 連接服務器,並選擇一個數據庫
// 錯誤的密碼
$mysqliConn->connect('127.0.0.1', 'root', 'root', 'db_test');
if ($mysqliConn->connect_error)
{
printf("Unable to connect to the database:%s", $mysqliConn->connect_error);
exit();
}
// 與數據庫交互
$query = 'select firstname, lastname, email from tb_test;';
// 發送查詢給MySQL
$result = $mysqliConn->query($query);
// 迭代處理結果集
while (list($firstname, $lastname, $email) = $result->fetch_row())
{
printf("%s %s's email:%s<br/>", $firstname, $lastname, $email);
}
$query = "delete from tb_test where firstname = 'Yuan';";
$result = $mysqliConn->query($query);
// 告訴用戶影響了多少行
printf("%d row(s) have been deleted.<br/>", $mysqliConn->affected_rows);
// 重新查詢結果集
$query = 'select firstname, lastname, email from tb_test;';
// 發送查詢給MySQL
$result = $mysqliConn->query($query);
// 迭代處理結果集
while (list($firstname, $lastname, $email) = $result->fetch_row())
{
printf("%s %s's email:%s<br/>", $firstname, $lastname, $email);
}
// 關閉連接
$mysqliConn->close();
?>
5.MySQL分頁顯示公告
有時候在查詢一些數據時,為了更加方便的瀏覽查詢出的信息內容,最好的方法就是通過分頁來顯示公告信息的內容
下面主要是使用select語句動態檢索數據庫中的公告信息,並通過分頁技術完成對數據庫中公告信息的分頁輸出,主要部分代碼如下:
<?php
$conn=mysql_connect("localhost","root","root") or die("數據庫服務器連接錯誤".mysql_error());
mysql_select_db("db_database18",$conn) or die("數據庫訪問錯誤".mysql_error());
mysql_query("set names gb2312");
/* $_GET[page]為當前頁,如果$_GET[page]為空,則初始化為1 */
if ($_GET[page]==""){
$_GET[page]=1;}
if (is_numeric($_GET[page])){
$page_size=4; //每頁顯示4條記錄
$query="select count(*) as total from tb_affiche order by id desc";
$result=mysql_query($query); //查詢符合條件的記錄總條數
$message_count=mysql_result($result,0,"total"); //要顯示的總記錄數
$page_count=ceil($message_count/$page_size); //根據記錄總數除以每頁顯示的記錄數求出所分的頁數
$offset=($_GET[page]-1)*$page_size; //計算下一頁從第幾條數據開始循環
$sql=mysql_query("select * from tb_affiche order by id desc limit $offset, $page_size");
$row=mysql_fetch_object($sql);
if(!$row){
echo "<font color='red'>暫無公告信息!</font>";
}
do{
?>
<?php
}while($row=mysql_fetch_object($sql));
}
?>
</table>
<br>
<table width="550" border="0" cellspacing="0" cellpadding="0">
<tr>
<!-- 翻頁條 -->
<td width="37%"> 頁次:<?php echo $_GET[page];?>/<?php echo $page_count;?>頁 記錄:
<?php echo $message_count;?> 條 </td>
<td width="63%" align="right">
<?php
/* 如果當前頁不是首頁 */
if($_GET[page]!=1){
/* 顯示“首頁”超鏈接 */
echo "<a href=page_affiche.php?page=1>首頁</a> ";
/* 顯示“上一頁”超鏈接 */
echo "<a href=page_affiche.php?page=".($_GET[page]-1).">上一頁</a> ";
}
/* 如果當前頁不是尾頁 */
if($_GET[page]<$page_count){
/* 顯示“下一頁”超鏈接 */
echo "<a href=page_affiche.php?page=".($_GET[page]+1).">下一頁</a> ";
/* 顯示“尾頁”超鏈接 */
echo "<a href=page_affiche.php?page=".$page_count.">尾頁</a>";
}
mysql_free_result($sql);
mysql_close($conn);
?>