PHP和MySQL被稱為黃金搭檔,幾乎所有的基于PHP應(yīng)用的項(xiàng)目都在使用MySQL,在PHP中,連接MySQL數(shù)據(jù)庫十分簡單,簡單到只需要一個(gè)函數(shù)函數(shù)即可:
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了漳縣免費(fèi)建站歡迎大家使用!
mysql_connect($host,$username,$password)
它有三個(gè)參數(shù),分別是數(shù)據(jù)庫主機(jī)名,數(shù)據(jù)庫用戶名,數(shù)據(jù)庫用戶密碼。
如果我們的數(shù)據(jù)庫在本地,那么數(shù)據(jù)庫主機(jī)名可寫為127.0.0.1。例如,我們可以使用這個(gè)方法連接數(shù)據(jù)庫:
$con=mysql_connect('127.0.0.1','user','123456') or die("服務(wù)器連接失?。?);
mysql_select_db('test',$con);
mysql_query("set names 'gb2312'");
三行代碼就實(shí)現(xiàn)了連接MySQL數(shù)據(jù)庫。在上面例子中,mysql_select_db()表示選擇數(shù)據(jù)庫,上例表示連接test數(shù)據(jù)庫,其中set names 'gb2312'表示設(shè)置數(shù)據(jù)庫讀取的編碼為gb2312。
如果數(shù)據(jù)庫的用戶名和密碼錯(cuò)誤,頁面上自動(dòng)會(huì)提示“服務(wù)器連接失敗”。
一般的,我們在做OOP的開發(fā)當(dāng)中,習(xí)慣上把PHP連接數(shù)據(jù)庫的部分,寫在一個(gè)單獨(dú)的類中。例如:
class cls_mysql
{
protected $link_id;
public function __construct($dbhost, $dbuser, $dbpw, $dbname = '', $charset = 'utf8')//構(gòu)造函數(shù)
{
if(!($this-link_id = mysql_connect($dbhost, $dbuser, $dbpw)))
{
$this-ErrorMsg("Can't pConnect MySQL Server($dbhost)!");
}
mysql_query("SET NAMES " . $charset, $this-link_id);//設(shè)置編碼
if ($dbname)
{
if (mysql_select_db($dbname, $this-link_id) === false )
{
$this-ErrorMsg("Can't select MySQL database($dbname)!");
return false;
}
else
{
return true;
}
}
}
public function select_database($dbname)//選擇數(shù)據(jù)庫
{
return mysql_select_db($dbname, $this-link_id);
}
public function fetch_array($query, $result_type = MYSQL_ASSOC)//得到遍歷后的數(shù)據(jù),是一個(gè)數(shù)組形式
{
return mysql_fetch_array($query, $result_type);
}
public function query($sql)//執(zhí)行查詢
{
return mysql_query($sql, $this-link_id);
}
public function affected_rows()//得到影響的記錄集數(shù)
{
return mysql_affected_rows($this-link_id);
}
public function num_rows($query)//獲得查詢的記錄數(shù)
{
return mysql_num_rows($query);
}
public function insert_id()
{
return mysql_insert_id($this-link_id);//獲得插入的id
}
public function selectLimit($sql, $num, $start = 0)
{
if ($start == 0)
{
$sql .= ' LIMIT ' . $num;
}
else
{
$sql .= ' LIMIT ' . $start . ', ' . $num;
}
return $this-query($sql);
}
public function getOne($sql, $limited = false)//獲取一條記錄
{
if ($limited == true)
{
$sql = trim($sql . ' LIMIT 1');
}
$res = $this-query($sql);
if ($res !== false)
{
$row = mysql_fetch_row($res);
return $row[0];
}
else
{
return false;
}
}
public function getrow($sql)
{
$res = $this-query($sql);
if ($res !== false)
{
return mysql_fetch_assoc($res);
}
else
{
return false;
}
}
public function getAll($sql)
{
$res = $this-query($sql);
if ($res !== false)
{
$arr = array();
while ($row = mysql_fetch_assoc($res))
{
$arr[] = $row;
}
return $arr;
}
else
{
return false;
}
}
function ErrorMsg($message = '', $sql = '')
{
if ($message)
{
echo "berror info/b: $message\n\n";
}
else
{
echo "bMySQL server error report:";
print_r($this-error_message);
}
exit;
}
}
1、檢查環(huán)境正常
使用mysql -u root -p 可以進(jìn)入MySQL操作界面
直接使用/usr/local/php5/bin/php /web/test.php執(zhí)行可以連上數(shù)據(jù)庫
2、打開hosts加入
復(fù)制代碼代碼如下:127.0.0.1 qttc
使用qttc當(dāng)主機(jī)連接也正常,唯獨(dú)就不認(rèn)localhost。
3、localhost連接方式不同導(dǎo)致
為了了解PHP連接數(shù)據(jù)庫時(shí),主機(jī)填寫localhost與其它的區(qū)別閱讀了大量資料,最后得知:
當(dāng)主機(jī)填寫為localhost時(shí)mysql會(huì)采用 unix domain socket連接
當(dāng)主機(jī)填寫為127.0.0.1時(shí)mysql會(huì)采用tcp方式連接
這是linux套接字網(wǎng)絡(luò)的特性,win平臺(tái)不會(huì)有這個(gè)問題
4、解決方法
在my.cnf的[mysql]區(qū)段里添加
復(fù)制代碼代碼如下:
protocol=tcp
保存重啟MySQL,問題解決!
不要看網(wǎng)頁上看結(jié)果,要檢查網(wǎng)頁源碼
php.ini里面
error_reporting = E_ALL
display_errors = On
display_startup_errors = On
這樣輸出詳細(xì)錯(cuò)誤信息對你會(huì)有幫助的希望有幫助??傻紺SDN,365testing逛逛
我用mysql_connect和mysql_pconnect能連接上。還有你得先確認(rèn)有"php"這個(gè)數(shù)據(jù)庫。另外,你的localhost確實(shí)用的中文的引號。實(shí)在不行,你復(fù)制我的代碼~
?php
$id=mysql_connect("localhost","root","123456")or die(mysql_error());
$ok=mysql_select_db("php",$id)or die(mysql_error());
if($ok){
echo "ok,選擇數(shù)據(jù)庫成功!";
}
else {
echo "OH選擇數(shù)據(jù)庫失敗,請確認(rèn)數(shù)據(jù)庫是否存在。";
}
?
本文標(biāo)題:php數(shù)據(jù)庫鏈接測試頁 php數(shù)據(jù)庫訪問鏈接用什么實(shí)現(xiàn)
文章地址:http://www.rwnh.cn/article2/dosijoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、面包屑導(dǎo)航、域名注冊、網(wǎng)站收錄、動(dòng)態(tài)網(wǎng)站、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)