PHP鏈接數(shù)據(jù)庫(kù)有幾種方式
創(chuàng)新互聯(lián)建站專注于漣源企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。漣源網(wǎng)站建設(shè)公司,為漣源等地區(qū)提供建站服務(wù)。全流程按需制作網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
mysqli:
?php
$servername = "localhost";
$username = "username";
$password = "password";
// 創(chuàng)建連接
$conn = new mysqli($servername, $username, $password);
// 檢測(cè)連接
if ($conn-connect_error) {
die("連接失敗: " . $conn-connect_error);
}
echo "連接成功";
?
也可以使用PDO進(jìn)行鏈接,前提是你必須在php.ini中開(kāi)啟PDO:
?php
$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
echo "連接成功";
}
catch(PDOException $e)
{
echo $e-getMessage();
}
?
建議使用PDO,功能更加強(qiáng)大,兼容各種數(shù)據(jù)庫(kù)
關(guān)于這個(gè)問(wèn)題,差不多就是這個(gè)樣子的了,你如果不明白,可以自己去后盾瞅瞅,我這些都是在后盾上學(xué)的,有空可以去看一下,就算不喜歡也沒(méi)關(guān)系啊,何樂(lè)而不為呢?
先配置數(shù)據(jù)庫(kù)------連接數(shù)據(jù)庫(kù)--------選擇數(shù)據(jù)庫(kù)--------填寫(xiě)檢索表-------輸出檢索內(nèi)容
第一種解決方法:
一、配置一下數(shù)據(jù)庫(kù):
define("DB_HOST","localhost");//數(shù)據(jù)庫(kù)地址,一般為localhost
define("DB_USER","root");//數(shù)據(jù)庫(kù)用戶名
define("DB_PSW","");//數(shù)據(jù)庫(kù)密碼
define("DB_DB","databasename");//需要操作的數(shù)據(jù)庫(kù)
二、連接數(shù)據(jù)庫(kù):
$conn = mysql_connect(DB_HOST,DB_USER,DB_PSW) or die
三、選擇數(shù)據(jù)庫(kù):
mysql_select_db(DB_DB,$conn) or die
四、檢索表:(填寫(xiě)tablename)
$result = mysql_query("select * from tablename") or die
五、輸出檢索的內(nèi)容:
while ($row = mysql_fetch_row($result)){foreach($row as $data){ echo $data.' ';} echo 'br。
mysql_connect("localhost","root","") or die("登陸數(shù)據(jù)庫(kù)失敗");
mysql_select_db("iPad") or die("連接數(shù)據(jù)庫(kù)失敗");
mysql_query("set names utf8");
$sql = "ALTER TABLE `表名` ADD `字段名` 數(shù)據(jù)類型";
mysql_query($sql);
字段(必填):就是自己起個(gè)字段名(列名),例如id,name等這樣的字符串.(注意:字段名不能相同).
類型(必選):這系統(tǒng)提供了很多。一般常用的也沒(méi)幾個(gè)
整型int,字符串型varchar,和char,還有浮點(diǎn)型double,文本text,時(shí)間timestamp.
長(zhǎng)度值(建意給定長(zhǎng)度):也就是給上面的類型中限定一個(gè)長(zhǎng)度。比如varchar(30),int(6),在長(zhǎng)度里直接寫(xiě)整型的數(shù)值就行了.(時(shí)間類型不需要提供長(zhǎng)度)。
整理(如果建庫(kù)已經(jīng)選好則不用選了。否則必選):(這個(gè)是數(shù)據(jù)表的字符集)這里基本上就兩個(gè)常用.(utf8_general_ci和gb2312_chinese_in)。
屬性:一般不選。(1二進(jìn)制。2無(wú)符號(hào)整型,3無(wú)符號(hào)整型,不夠位數(shù)則補(bǔ)0,4在更新數(shù)據(jù)時(shí),更新當(dāng)前時(shí)間戳[基本上用于timestamp])
空:也就是這個(gè)字段的值是否可以為空.
auto_increment:自增長(zhǎng).一般主鍵會(huì)用且為整型時(shí)。
html
head
title瀏覽表中記錄/title
/head
body
center
?php
$db_host=localhost; //MYSQL服務(wù)器名
$db_user=root; //MYSQL用戶名
$db_pass=""; //MYSQL用戶對(duì)應(yīng)密碼
$db_name="test"; //要操作的數(shù)據(jù)庫(kù)
//使用mysql_connect()函數(shù)對(duì)服務(wù)器進(jìn)行連接,如果出錯(cuò)返回相應(yīng)信息
$link=mysql_connect($db_host,$db_user,$db_pass)or die("不能連接到服務(wù)器".mysql_error());
mysql_select_db($db_name,$link); //選擇相應(yīng)的數(shù)據(jù)庫(kù),這里選擇test庫(kù)
$sql="select * from test1"; //先執(zhí)行SQL語(yǔ)句顯示所有記錄以與插入后相比較
$result=mysql_query($sql,$link); //使用mysql_query()發(fā)送SQL請(qǐng)求
echo "當(dāng)前表中的記錄有:";
echo "table border=1"; //使用表格格式化數(shù)據(jù)
echo "trtdID/tdtd姓名/tdtd郵箱/tdtd電話/tdtd地址/td/tr";
while($row=mysql_fetch_array($result)) //遍歷SQL語(yǔ)句執(zhí)行結(jié)果把值賦給數(shù)組
{
echo "tr";
echo "td".$row[id]."/td"; //顯示ID
echo "td".$row[name]." /td"; //顯示姓名
echo "td".$row[mail]." /td"; //顯示郵箱
echo "td".$row[phone]." /td"; //顯示電話
echo "td".$row[address]." /td"; //顯示地址
echo "/tr";
}
echo "/table";
?
/center
/body
/html
貼出自己寫(xiě)的一個(gè)數(shù)據(jù)庫(kù)類吧。
class.php
?php
class Db_Base
{
var $db_host;
var $db_name;
var $db_user;
var $password;
var $linkID;
var $sql;
var $result;
//構(gòu)造函數(shù),其中dbname,dbuser,dbpsd填自己的數(shù)據(jù)名,用戶名,密碼
function __construct()
{
$this-linkID = 0;
$this-sql = "";
$this-db_name="dbname";
$this-db_user="dbuser";
$this-password="dbpsd";
$this-db_host="localhost";
//調(diào)用數(shù)據(jù)庫(kù)鏈接函數(shù)
$this-Db_Connect();
}
function Db_Base()
{
$this-__construct();
}
//鏈接數(shù)據(jù)庫(kù)函數(shù)
function Db_Connect()
{
$this-linkID=@mysql_connect($this-db_host,$this-db_user,$this-password);
if(!$this-linkID)
{
DisplayError("連接失敗");exit();
}
$this-Db_Select();
return true;
}
//選擇數(shù)據(jù)庫(kù)函數(shù)
function Db_Select()
{
$select=mysql_select_db($this-db_name);
if(!$select)
{
DisplayError("選擇數(shù)據(jù)庫(kù)失敗");exit();
}
}
//sql語(yǔ)句操作
function Db_Query($sql)
{
if($sql) $this-sql=$sql;
if(!($this-result=mysql_query($this-sql,$this-linkID)))
{
DisplayError("SQL無(wú)效");
return 0;
}
else
{
return $this-result;
}
}
//sql語(yǔ)句的結(jié)果用數(shù)組返回
function Db_Fetch_Array()
{
return mysql_fetch_array($this-result);
}
//select語(yǔ)句 影響的行數(shù)
function Db_Num_Rows()
{
return mysql_num_rows($this-result);
}
//INSERT、UPDATE 、DELETE 的影響行數(shù)
function Db_Affected_Rows()
{
return mysql_affected_rows();
}
//清除記錄
function Db_Free_Result()
{
if(!is_array($this-result)) return "";
foreach($this-result as $kk = $vv)
{
if($vv) @mysql_free_result($vv);
}
}
?
其中DisplayError 為外部定義函數(shù)
應(yīng)用的話,如下操作
example.php
?php
require_once(class.php);
$news=new Db_Base();//構(gòu)建對(duì)象
$sql="select * from tableA limit 0,100";//初始化sql語(yǔ)句
$news-Db_Query($sql);//向數(shù)據(jù)庫(kù)插入sql語(yǔ)句
while($re=$news-Db_Fetch_Array())//循環(huán)輸出sql結(jié)果集
{
echo $re[keyA];
echo $re[keyB];//keyA,keyB為你數(shù)據(jù)表的鍵
}
echo $news-Db_Num_Rows();//輸出本次sql語(yǔ)句影響的行數(shù),假若sql語(yǔ)句是update,delete,insert的,則用 Db_Affected_Rows() 函數(shù)
$news-Db_Free_Result();//清空查詢結(jié)果
?
好吧,百度的這個(gè)表單輸入框真爛,不能調(diào)格式,代碼格式可能很亂,就麻煩樓主慢慢看吧。若有問(wèn)題再發(fā)消息給我百度號(hào)。