- 相關(guān)推薦
mysql,mysqli,PDO的優(yōu)劣比較
隨著計算機(jī)的發(fā)展,軟件技術(shù)也在不斷更新發(fā)展,以下是百分網(wǎng)小編精心為大家整理的mysql,mysqli,PDO的優(yōu)劣比較,希望對大家有所幫助!更多內(nèi)容請關(guān)注應(yīng)屆畢業(yè)生網(wǎng)!
PDO,MYSQL,MYSQLI 性能哪個比較好,普通的mysql連接肯定是會被拋棄的 因?yàn)槊看味家乐箂ql注入的問題 而且相對來說比較慢
普通的mysql連接肯定是會被拋棄的 因?yàn)槊看味家乐箂ql注入的問題 而且相對來說比較慢
mysqli是在普通mysql的基礎(chǔ)上做的一次優(yōu)化 說實(shí)話 很成功 預(yù)處理方式完全解決了sql注入的問題
但是唯一的不足點(diǎn) 就是只支持mysql數(shù)據(jù)庫 當(dāng)然 如果你要是不操作其他的數(shù)據(jù)庫或者 當(dāng)然這無疑是最好的選擇
PDO則是最新出來的一種 連接方式 兼容大部分?jǐn)?shù)據(jù)庫 也解決了sql注入 但是也有缺點(diǎn) 它只支持php5以上的版本 不過聽說在未來的php6中 只支持這種連接
PDO統(tǒng)一所有數(shù)據(jù)庫抽象層對象接口,mysqli只統(tǒng)一mysql的
簡單說,PDO可以實(shí)現(xiàn)同樣的代碼對不同數(shù)據(jù)庫的操作,例如你從mysql遷移到mssql,程序基本不需要改動
而mysqli簡單理解未mysql的封裝就好
在高負(fù)載的情況下.PDO開啟長連接能夠得到一個相對穩(wěn)定的負(fù)載“值”。但是效率卻不是最高的。
mysql最快。mysqli其次。只是mysql和mysqli在高并發(fā)、系統(tǒng)高負(fù)載的時候。其所承擔(dān)的負(fù)載也是很可觀的。PDO則不會。
【拓展閱讀】 MySQL改密碼報錯:ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
明天去面試,今晚想看看MySQL的一些指令,雖然之前一直在用Mysql,但是感覺都是在做一些簡單的操作。結(jié)果剛開始搗騰Mysql就吃了閉門羹,我之前一直用的>mysql -uroot -p。Enter Password:123456去鏈接Mysql數(shù)據(jù)庫的,也從來沒有修改過密碼,結(jié)果當(dāng)我用>mysqladmin -uroot -p123456 password abc123;指令把密碼改為“abc123”再重新連接數(shù)據(jù)庫的時候竟然一直在報:Access denied for user 'root'@'localhost' (using password:YES) 這個錯。
上網(wǎng)找了很多資料,知道大概是因?yàn)闆]有給root設(shè)置權(quán)限的原因,方法終于是找到一種了。不過比較麻煩,但是也沒有辦法了,不弄好我的Mysql數(shù)據(jù)庫就用不了,很多開發(fā)的應(yīng)用都是連的Mysql數(shù)據(jù)庫。
大概的步驟如下:
第一步:以系統(tǒng)管理員身份登錄到系統(tǒng);
第二步:如果MySQL服務(wù)器正在運(yùn)行,停止它。 方法有兩個,1:開始菜單->控制面板->管理工具->服務(wù),找到Mysql服務(wù)停掉。2:右擊我的電腦->管理->服務(wù)與應(yīng)用->服務(wù),找到mysql服務(wù)停掉。3:Ctrl+Alt+Delete->啟動服務(wù)管理器->服務(wù),找到mysql服務(wù)停掉。(這一步這么簡單,我寫的太詳細(xì),不應(yīng)該不應(yīng)該啊!浪費(fèi)電平啊!)
第三步:選擇一個硬盤最外面創(chuàng)建一個txt文件,為什么呢?因?yàn)檫@個txt只是輔佐你解決掉這個錯誤,解決掉錯誤它的光榮任務(wù)就完成了,就可以壯烈犧牲了,不要感到可惜,它沒有生命的。比如放在:C:\mysql-init.txt。(這個txt最好還是取這個名字,不要個性化,其他不知道行不行,我也沒有實(shí)驗(yàn)過,這個名字正好是Mysql的進(jìn)程名字,不要問為什么是這個名字,計算機(jī)這東西在中國是不能問為什么的,知道是這樣就行了。)在里面輸入一句話:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
后面的那串?dāng)?shù)字是我重新設(shè)置的密碼,因?yàn)槲襇yEclipse的項(xiàng)目里面默認(rèn)的都是這個密碼,你們改回自己想要的密碼就行了。
第四步:進(jìn)入DOS命令提示:開始菜單->運(yùn)行-> cmd ,然后cd到你安裝Mysql的目錄下,當(dāng)然我的Mysql埋的比較比較深,C:\Program Files\MySQL\MySQL Server 5.0\bin>。如果你將MySQL安裝到了另一位置,請對下述命令進(jìn)行相應(yīng)的調(diào)整。 在DOS命令提示符下,執(zhí)行命令:
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqld-nt --init-file=C:\mysql-init.txt 。
第五步:啟動服務(wù),步驟和第二步一樣。在服務(wù)器啟動時,執(zhí)行由“--init-file”選項(xiàng)(作用:在啟動時從指定的文件中讀取SQL命令)命名的文件的內(nèi)容,更改根用戶密碼。當(dāng)服務(wù)器成功啟動后,應(yīng)刪除C:\mysql-init.txt。這個時候這個txt的任務(wù)完成了。如果起動MySQL服務(wù)器出錯,把進(jìn)程mysqld-nt.exe關(guān)閉(第二步的第三種方法可以找到進(jìn)程關(guān)掉)。然后重啟它,OK。
最后就可以用你在第三步設(shè)置的密碼>mysql -uroot -p 去鏈接Mysql數(shù)據(jù)庫了。
但是你會問難道我每次改密碼都要弄出這個錯來,還要犧牲一個txt才能改密碼成功嗎?就沒有一條指令搞定改密碼這種簡單的事情,當(dāng)然不是啦。具體方法就是你用這條指令>mysqladmin -uroot -p123456 password abc123;改密碼的時候,要用這個指令>mysql -uroot -p123456登錄,而不是換行輸進(jìn)密碼,登錄之后再在mysql>操作符后面加上一句給權(quán)限的語句(很多資料并沒有表述明白下面這條指令什么什么時候輸入,搞得很多人以為是在改完密碼過后立刻輸入,就會有報錯聲音):
grant all on mysql.* to 'root'@'localhost' identified by 'password';
最后那個password即是你要修改的root用戶的密碼 。我這里是“123456”這個時候下次登錄才可以用>mysql -uroot -p。Enter Password:123456登錄數(shù)據(jù)庫。
其實(shí)以上都是廢話來,如果你想改密碼,直接用原來的密碼登錄過后,用下面任何一條指令都可以改密碼,但是要重復(fù)運(yùn)行同一條指令兩次,第一次我把它當(dāng)作改密碼,第二次當(dāng)作授予權(quán)限,這樣一點(diǎn)事都沒有,你可以這樣子>mysql -uroot -p123456登錄,還可以這樣子>mysql -uroot -p。Enter Password:123456登錄。其中newpassword就是新密碼。
grant all on mydb.* to NewUserName@HostName identified by "newpassword" ;
grant usage on *.* to NewUserName@HostName identified by "newpassword";
grant select,insert,update on mydb.* to NewUserName@HostName identified by "newpassword";
grant update,delete on mydb.TestTable to NewUserName@HostName identified by "newpassword";
即是:
grant all onmysql.* to 'root'@'localhost' identified by "newpassword" ;
grant usage on *.* to 'root'@'localhost' identified by "newpassword";
grant select,insert,update on mydb.* to 'root'@'localhost' identified by "newpassword";
grant update,delete on mydb.TestTable to 'root'@'localhost' identified by "newpassword";
如果是自己電腦多點(diǎn)嘗試,總會發(fā)現(xiàn)有辦法的,公司的電腦就不要試?yán)玻銐臄?shù)據(jù)庫。有錯請指正。哈哈!
【mysql,mysqli,PDO的優(yōu)劣比較】相關(guān)文章:
Php中用PDO查詢Mysql來避免SQL注入風(fēng)險的方法10-27
電腦大板小板的優(yōu)劣比較08-27
2017計算機(jī)二級MySQL考試在MySQL數(shù)據(jù)庫比較日期的方法07-21
MYSQL操作命令05-29
php查詢mysql的實(shí)例09-09
PHP常用MySql操作07-26
MySQL常用操作命令07-06
2017計算機(jī)二級考試MySQL常用MYSQL命令09-02
ubuntu下安裝php5+pdo的技巧08-10
MySQL性能跟蹤語句教程11-03