1、用 mysql_connect 的方法,PHP7會(huì)報(bào)致命錯(cuò)誤

創(chuàng)新互聯(lián)主要從事網(wǎng)頁設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、成都響應(yīng)式網(wǎng)站建設(shè)公司、程序開發(fā)、網(wǎng)站優(yōu)化、微網(wǎng)站、小程序定制開發(fā)等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們?cè)诨ヂ?lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷經(jīng)驗(yàn),集策劃、開發(fā)、設(shè)計(jì)、營(yíng)銷、管理等多方位專業(yè)化運(yùn)作于一體。
$conn= mysql_connect('localhost','xueyanxiang','xueyanxiang');
Fatal error : Uncaught Error: Call to undefined function mysql_connect() in /Users/xueyanxiang/work/test/xue.php:31 Stack trace: #0 /Users/xueyanxiang/work/test/xue.php(119): xue-run() #1 {main} thrown in? /Users/xueyanxiang/work/test/xue.php ?on line? 31
原因是:
PHP5中使用mysql_connect()函數(shù)進(jìn)行連接,但實(shí)際上,PHP5.5開始,MySQL就不推薦使用了,屬于廢棄函數(shù)
PHP7中貌似已經(jīng)徹底不支持了,根據(jù)官網(wǎng)說明,取而代之的是如下兩個(gè):
本擴(kuò)展自 PHP 5.5.0 起已廢棄,并在將來會(huì)被移除。應(yīng)使用?MySQLi?或?PDO_MySQL?擴(kuò)展來替換之。參見?MySQL:選擇
API?指南以及相關(guān) FAQ?以獲取更多信息。用以替代本函數(shù)的有:
mysqli_connect()
PDO::__construct()
使用時(shí),不要在使用mysql_connect了,可以換用mysqli_connect(),用法基本類似吧,據(jù)說是面向?qū)ο蟮膸臁?/p>
php.ini中,也只有extension=php_mysqli.dll,而不再有extension=php_mysql.dll這個(gè)拓展了。
2、可以使用mysqli,對(duì)象化,方法名與被廢棄的類似
$conn= mysqli_connect('localhost','xueyanxiang','xueyanxiang');
3、PDO工具,推薦使用
$dbh= "mysql:host=localhost;dbname=test";
$db= new PDO($dbh,'xueyanxiang','xueyanxiang');
$objQuery= $db-query("select * from user;");
$res= $objQuery-fetchAll(PDO::FETCH_ASSOC);
不填寫參數(shù)的話,默認(rèn)是關(guān)聯(lián)和索引都有,如下圖
這種情況說明你的第一個(gè)參數(shù)錯(cuò)誤,就是得到的不是數(shù)據(jù)庫資源。
你需要使用$row = mysql_fetch_row($res)來判斷資源是否存在,這樣就不會(huì)報(bào)錯(cuò)。
這種錯(cuò)誤一般就是我們常說的空引用,就是數(shù)據(jù)都不存在,你就調(diào)用數(shù)據(jù)的方法就會(huì)出問題。
第一個(gè)問題: $db是對(duì)象,對(duì)象調(diào)用成員方法就是-
第二個(gè)問題:mysql_query是php5之前的函數(shù),他不太安全,其實(shí)還有mysqli_query擴(kuò)展增強(qiáng)版,但這些都沒有對(duì)象好用,為什么呢?因?yàn)槊看问褂枚疾皇且粋€(gè)對(duì)象,但函數(shù)不一樣,使用的是同一個(gè)函數(shù),如果你學(xué)過java的線程大概就能知道怎么回事了。對(duì)象new 你不用之后會(huì)回收,但函數(shù)就未必了,這也是為安全考慮,目前對(duì)象比較安全。
第三個(gè)問題:這個(gè)問題很簡(jiǎn)單,你用的是對(duì)象連接,卻使用函數(shù),這本就不是一個(gè)東西,你沒有給全局變量賦值(mysqli_connect($servername, $username, $password);),所以不能使用這個(gè)函數(shù),這也就是安全問題(第二個(gè)問題,你看它一次只能使用一個(gè)連接,不像對(duì)象,可以new很多個(gè),看出優(yōu)劣了吧!這是進(jìn)化的結(jié)果,因?yàn)閜hp想干大型項(xiàng)目用對(duì)象,也比較最好管理),至于應(yīng)該使用什么?$db -num_rows其實(shí)很簡(jiǎn)單的,就是把以前的函數(shù)封裝成為對(duì)象,名字幾乎不變
首先你想要理解數(shù)據(jù)庫抽象層的概念,理解這時(shí)候你就知道ADODB的作用了,php雖然對(duì)大多數(shù)數(shù)據(jù)庫都支持,但是每種數(shù)據(jù)庫都有很大差異,這樣當(dāng)你更換數(shù)據(jù)庫的時(shí)候,就要改動(dòng)大量代碼,ok,有了ADODB你完全沒有了這些煩惱!
目前最新版本是:adodb516a ,下載地址:
adodb目前支持mysql、postgresql、oracle、interbase、microsoft sql server、access、foxpro、sybase、odbc及ado。另外adodb不僅對(duì)select操作提供強(qiáng)大支持,對(duì)update和insert也提供強(qiáng)大支持。使用了ADODB后,對(duì)于系統(tǒng)的移植將會(huì)變得輕而易舉。
adodb使用案例很多,像PostNuke、phpwiki等很多開源系統(tǒng)都使用adodb作為數(shù)據(jù)庫抽象層!
那么今天就來看看使用adodb并連接mysql數(shù)據(jù)庫的簡(jiǎn)單教程!
?php
//adodb.inc.php包含所有數(shù)據(jù)庫類包含的使用函數(shù),必須加載
require_once './adodb5/adodb.inc.php';
//創(chuàng)建連接對(duì)象,接受使用的數(shù)據(jù)庫
$conn = ADONewConnection('mysql');
//那么開始連接mysql數(shù)據(jù)庫了
$conn-connect('localhost','root','','test');
//設(shè)置字符編碼
$conn-Execute("set names utf8");
$res = $conn-Execute("select * from user");
if (!$res){
echo $conn-ErrorMsg();
}else{
var_dump($res);
}
?
echo是PHP語句,?print和print_r是函數(shù),語句沒有返回值,函數(shù)可以有返回值(即便沒有用)??
print()????只能打印出簡(jiǎn)單類型變量的值(如int,string)??
print_r()?可以打印出復(fù)雜類型變量的值(如數(shù)組,對(duì)象)??
echo?????輸出一個(gè)或者多個(gè)字符串應(yīng)該大概是這樣,樓主需要詳細(xì)樓主自己去學(xué)習(xí),看看教學(xué)視頻.
PHP5中使用mysql_connect()函數(shù)進(jìn)行連接,但實(shí)際上,PHP5.5開始,mysql系列函數(shù)就不推薦使用了,屬于廢棄函數(shù)
PHP7中貌似已經(jīng)徹底不支持了,根據(jù)官網(wǎng)說明,取而代之的是如下兩個(gè):
本擴(kuò)展自?PHP?5.5.0?起已廢棄,并在將來會(huì)被移除。應(yīng)使用?MySQLi?或?PDO_MySQL?擴(kuò)展來替換之。
$host?=?'127.0.0.1';//主機(jī)名或IP地址
$user?=?'root';????????//數(shù)據(jù)庫用戶
$database?=?'cake';????//數(shù)據(jù)庫名
$password?='root';????//數(shù)據(jù)庫密碼
$mysqli?=?new?mysqli($host,$user,$password,$database);
$query?=?'SET?NAMES?UTF8';
$mysqli-query($query);
if($mysqli-errno){
print_f("連接數(shù)據(jù)庫錯(cuò)誤br/?%s",$mysqli-error);
exit;
}
本文題目:php7數(shù)據(jù)庫連接類,php建立數(shù)據(jù)庫連接的代碼
網(wǎng)址分享:http://chinadenli.net/article13/dsgjhds.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、動(dòng)態(tài)網(wǎng)站、建站公司、用戶體驗(yàn)、云服務(wù)器、企業(yè)網(wǎng)站制作
聲明:本網(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)