日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP-连接数据库

發布時間:2023/12/13 php 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP-连接数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.2 連接數據庫

通過PHP做MySQL的客戶端

1.2.1 開啟mysqli擴展

在php.ini中開啟mysqli擴展

extension=php_mysqli.dll
  • 開啟擴展后重啟服務器,就可以使用mysqli_函數了,

1.2.2 連接數據庫

創建news數據庫

-- 創建表 drop table if exists news; create table news(id int unsigned auto_increment primary key comment '主鍵',title varchar(20) not null comment '標題',content text not null comment '內容',createtime int not null comment '添加時間' )engine=innodb charset=utf8 comment '新聞表';-- 插入測試數據 insert into news values (null,'鋤禾','鋤禾日當午',unix_timestamp()); insert into news values (null,'草','離離原上草',unix_timestamp());

思考:時間字段可以用datetime類型,也可以使用int類型。一般用int,因為datetime占用8個字節,int占用4個字節。

連接數據庫

mysqli_connect(主機IP,用戶名,密碼,數據庫名,端口號) //如果端口號是3306可以省略 mysqli_connect_error():獲取連接數據庫的錯誤信息 mysqli_connect_errno():獲取連接數據庫的錯誤編碼 mysqli_set_charset(連接對象,字符編碼)

代碼如下:

<?php //連接數據庫,連接成功返回連接對象 $link=@mysqli_connect('localhost','root','root','data','3306'); //var_dump($link); //object(mysqli) if(mysqli_connect_error()){echo '錯誤號:'.mysqli_connect_errno(),'<br>'; //顯示錯誤編碼echo '錯誤信息:'.mysqli_connect_error(); //顯示錯誤信息exit; } //設置字符編碼 mysqli_set_charset($link,'utf8');

腳下留心:與數據庫相關用utf8,與頁面顯示相關用utf-8

1.3 操作數據

1.3.1 數據操作語句

通過mysqli_query()執行SQL語句

增、刪、改語句執行成功返回true,失敗返回false

<?php //1、連接數據庫 $link=mysqli_connect('localhost','root','root','data'); //2、設置支付編碼 mysqli_set_charset($link,'utf8'); //3、執行SQL語句//3.1 執行insert語句 /* $rs=mysqli_query($link,"insert into news values (null,'靜夜思','床前明月光',unix_timestamp())"); if($rs)echo '自動增長的編號是:'.mysqli_insert_id($link); *///3.2 執行update語句 /* $rs=mysqli_query($link,"update news set content='疑是地上霜' where id=4"); if($rs)echo '受影響的記錄數是:'.mysqli_affected_rows($link); else{echo '錯誤碼:'.mysqli_errno($link),'<br>';echo '錯誤信息:'.mysqli_error($link); } *///3.3 執行delete語句 mysqli_query($link,"delete from news where id=5");

用到的函數

mysqli_query():執行SQL語句 mysqli_insert_id():獲取插入記錄自動增長的ID mysqli_affected_rows():獲取受影響的記錄數 mysqli_error():獲取執行SQL語句的錯誤信息 mysqli_errno():獲取執行SQL語句的錯誤碼

1.3.2 數據查詢語句

數據查詢用select、desc、show,成功會返回結果集,失敗返回false

<?php //1、連接數據庫 $link=@mysqli_connect('localhost','root','root','data') or die('錯誤信息:'.mysqli_connect_error()); //2、設置字符編碼 mysqli_query($link,'set names utf8'); //3、執行查詢語句 $rs=mysqli_query($link,'select * from news'); //var_dump($rs); //object(mysqli_result) //4、獲取對象中的數據 //4.1 將對象中的一條數據匹配成索引數組,指針下移一條 //$rows=mysqli_fetch_row($rs);//4.2 將對象中的一條數據匹配成關聯數組,指針下移一條 //$rows=mysqli_fetch_assoc($rs);//4.3 將對象中的一條數據匹配成索引,關聯數組,指針下移一條 //$rows=mysqli_fetch_array($rs);//4.4 總列數、總行數 //echo '總行數'.mysqli_num_rows($rs),'<br>'; //echo '總列數'.mysqli_num_fields($rs),'<br>';//4.5 獲取所有數據 //$list=mysqli_fetch_all($rs); //默認是索引數組 //$list=mysqli_fetch_all($rs,MYSQLI_NUM); //匹配成索引數組 //$list=mysqli_fetch_all($rs,MYSQLI_ASSOC); //匹配成關聯數組 $list=mysqli_fetch_all($rs,MYSQLI_BOTH); //匹配成關聯、索引數組echo '<pre>'; print_r($list);//5、銷毀結果集 mysqli_free_result($rs);//6、關閉連接 mysqli_close($link);

使用的函數

mysqli_fetch_assoc():將一條數組匹配關聯數組 mysqli_fetch_row():將一條記錄匹配成索引數組 mysqli_fetch_array():將一條記錄匹配成既有關聯數組又有索引數組 mysqli_fetch_all():匹配所有記錄 mysqli_num_rows():總行數 mysqli_num_fields():總記錄數 mysqli_free_result():銷毀結果集 mysqli_close():關閉連接

1.4 新聞模塊實戰

1.4.1 包含文件

由于所有的操作都要連接數據庫,將連接數據庫的代碼存放到包含文件中

步驟

1、在站點下創建inc文件夾

2、在inc下創建conn.php文件,用來連接數據庫,代碼就是上面連接數據庫的代碼

代碼實現

<?php //連接數據庫 $link=@mysqli_connect('localhost','root','root','data') or die('錯誤:'.mysqli_connect_error()); mysqli_set_charset($link,'utf8');

1.4.2 顯示新聞

步驟:

1、連接數據庫

2、獲取數據

3、遍歷循環數據

代碼

<style type="text/css">table{width:780px;border:solid 1px #000;margin:auto;}th,td{border:solid 1px #000;} </style> <body> <?php //1、連接數據庫 require './inc/conn.php'; //2、獲取數據 $rs=mysqli_query($link,'select * from news order by id desc'); //返回結果集對象 $list=mysqli_fetch_all($rs,MYSQLI_ASSOC); //將結果匹配成關聯數組 ?> <table><tr><th>編號</th> <th>標題</th> <th>內容</th> <th>時間</th> <th>修改</th> <th>刪除</th><!--3、循環顯示數據--><?php foreach($list as $rows):?><tr><td><?php echo $rows['id']?></td><td><?php echo $rows['title']?></td><td><?php echo $rows['content']?></td><td><?php echo date('Y-m-d H:i:s',$rows['createtime'])?></td><td><input type="button" value="修改" οnclick=""></td><td><input type="button" value="刪除" οnclick=""></td></tr><?php endforeach;?></tr> </table> </body>

運行結果

1.4.3 添加新聞

步驟:

1、創建表單

2、連接數據庫

3、將新聞數據寫入到數據庫中

入口(list.php)

<a href="./add.php">添加新聞</a>

代碼實現

<body> <?php if(!empty($_POST)) {//2、連接數據庫require './inc/conn.php';//3、插入數據$time=time(); //獲取時間戳$sql="insert into news values (null,'{$_POST['title']}','{$_POST['content']}',$time)"; //拼接SQL語句if(mysqli_query($link,$sql)) //執行SQL語句header('location:./list.php'); //插入成功就跳轉到list.php頁面else{echo 'SQL語句插入失敗<br>';echo '錯誤碼:'.mysqli_errno($link),'<br>';echo '錯誤信息:'.mysqli_error($link);} } ?> <!--1、創建表單--> <form method="post" action="">標題: <input type="text" name="title"> <br /> <br />內容: <textarea name="content" rows="5" cols="30"></textarea> <br /> <br /><input type="submit" name="button" value="提交"> </form> </body>

運行結果

1.4.4 刪除新聞

步驟:

1、在list.php頁面點擊刪除按鈕,跳轉到del.php頁面,傳遞刪除的id

2、在del.php頁面連接數據庫

3、通過id刪除數據

4、刪除成功后,跳轉到list.php

入口(list.php)

<input type="button" value="刪除" οnclick="if(confirm('確定要刪除嗎'))location.href='./del.php?id=<?php echo $rows['id']?>'">
  • 1

del.php

<?php //1、連接數據庫 require './inc/conn.php'; //2、拼接SQL語句 $sql="delete from news where id={$_GET['id']}"; //3、執行SQL語句 if(mysqli_query($link,$sql))header('location:./list.php'); else{echo '刪除失敗'; }

小結:

1、一個頁面是否寫HTML架構,取決于是否有顯示功能。

2、如果一個頁面只是做業務邏輯,沒有顯示功能,就不需要寫HTML架構,比如del.php頁面

1.4.5 修改新聞

入口(list.php)

<input type="button" value="修改" οnclick="location.href='edit.php?id=<?php echo $rows['id']?>'">
  • edit.php頁面

步驟

第一步:顯示修改界面

? 1、連接數據庫

? 2、獲取修改的數據

? 3、將數據顯示到表單中

第二步:執行修改邏輯

? 1、獲取新數據

? 2、拼接修改的SQL語句,執行修改邏輯

代碼如下

<?php //連接數據庫 require './inc/conn.php'; //1、獲取修改的數據庫 $sql="select * from news where id={$_GET['id']}"; //拼接SQL語句 $rs=mysqli_query($link,$sql); //獲取修改的數據 $rows=mysqli_fetch_assoc($rs); //將修改的數據匹配成一維關聯數組 //2、執行修改的邏輯 if(!empty($_POST)) {$id=$_GET['id']; //獲取修改的id$title=$_POST['title']; //修改的標題$content=$_POST['content']; //修改的內容$sql="update news set title='$title',content='$content' where id=$id"; //拼接SQL語句if(mysqli_query($link,$sql))header('location:list.php'); //修改成功跳轉到list.php頁面elseecho '錯誤:'.mysqli_error($link);exit; } ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>無標題文檔</title> </head><body> <form method="post" action="">標題: <input type="text" name="title" value='<?php echo $rows['title']?>'> <br /> <br />內容: <textarea name="content" rows="5" cols="30"><?php echo $rows['content']?></textarea> <br /> <br /><input type="submit" name="button" value="提交"><input type="button" value="返回" οnclick="location.href='list.php'"> </form> </body> </html>

運行結果

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的PHP-连接数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。