本文目錄一覽:
- 1、PHP MYSQL面向對象編程,不明白其具體意義何在?提高了性能、效率、重用?
- 2、談談你對 mysql 事務的認識 我是php初學者不懂這個 想請教大神教我
- 3、PHP開發怎麼學習?PHP學習有沒有什麼方法?
PHP MYSQL面向對象編程,不明白其具體意義何在?提高了性能、效率、重用?
把 mysql 與 php 的鏈接看做一個對象,這個對象負責php與mysql的交互。
其意義在於把數據庫的鏈接抽象成了對象,抽象的意義在於化繁為簡。
普通的那種方式,更像是一種行為,全都是行為由誰發出呢?由php語言本身?
面向對象的方式,則有這個對象發出!
談談你對 mysql 事務的認識 我是php初學者不懂這個 想請教大神教我
先簡單介紹一下事務吧!事務是DBMS得執行單位。它由有限得數據庫操作序列組成得。但不是任意得數據庫操作序列都能成為事務。一般來說,事務是必須滿足4個條件(ACID)
原子性(Autmic):事務在執行性,要做到「要麼不做,要麼全做!」,就是說不允許事務部分得執行。即使因為故障而使事務不能完成,在rollback時也要消除對數據庫得影響!
一致性(Consistency):事務得操作應該使使數據庫從一個一致狀態轉變倒另一個一致得狀態!就拿網上購物來說吧,你只有即讓商品出庫,又讓商品進入顧客得購物籃才能構成事務!
隔離性(Isolation):如果多個事務並發執行,應象各個事務獨立執行一樣!
持久性(Durability):一個成功執行得事務對數據庫得作用是持久得,即使數據庫應故障出錯,也應該能夠恢復!
MYSQL的事務處理主要有兩種方法。
1、用begin,rollback,commit來實現
begin
開始一個事務
rollback 事務回滾
commit 事務確認
2、直接用set來改變mysql的自動提交模式
MYSQL默認是自動提交的,也就是你提交一個QUERY,它就直接執行!我們可以通過
set autocommit=0
禁止自動提交
set autocommit=1 開啟自動提交
來實現事務的處理。
但注意當你用 set
autocommit=0
的時候,你以後所有的SQL都將做為事務處理,直到你用commit確認或rollback結束,注意當你結束這個事務的同時也開啟了個新的事務!按第一種方法只將當前的作為一個事務!
個人推薦使用第一種方法!
MYSQL中只有INNODB和BDB類型的數據表才能支持事務處理!其他的類型是不支持的!(切記!)
下次有空說下MYSQL的數據表的鎖定和解鎖!
MYSQL5.0 WINXP下測試通過~ ^_^
mysql use test;
Database
changed
mysql CREATE TABLE `dbtest`(
– id int(4)
– ) TYPE=INNODB;
Query OK, 0 rows affected, 1 warning (0.05
sec)
mysql select * from dbtest
– ;
Empty set (0.01
sec)
mysql begin;
Query OK, 0 rows affected (0.00
sec)
mysql insert into dbtest value(5);
Query OK, 1 row affected
(0.00 sec)
mysql insert into dbtest value(6);
Query OK, 1 row
affected (0.00 sec)
mysql commit;
Query OK, 0 rows affected (0.00
sec)
mysql select * from dbtest;
+——+
| id
|
+——+
| 5 |
| 6 |
+——+
2 rows in set (0.00
sec)
mysql begin;
Query OK, 0 rows affected (0.00
sec)
mysql insert into dbtest values(7);
Query OK, 1 row affected
(0.00 sec)
mysql rollback;
Query OK, 0 rows affected (0.00
sec)
mysql select * from dbtest;
+——+
| id
|
+——+
| 5 |
| 6 |
+——+
2 rows in set (0.00
sec)
mysql
*******************************************************************************************************************
[PHP]
function
Tran( $sql ) {
$judge = 1;
mysql_query(‘begin’);
foreach ($sql as $v) {
if
( !mysql_query($v) ) {
$judge =
0;
}
}
if ($judge == 0)
{
mysql_query(‘rollback’);
return
false;
}
elseif ($judge == 1) {
mysql_query(‘commit’);
return true;
}
}
[/PHP]
************************************************
?php
$handler=mysql_connect(“localhost”,”root”,””);
mysql_select_db(“task”);
mysql_query(“SET
AUTOCOMMIT=0″);//設置為不自動提交,因為MYSQL默認立即執行
mysql_query(“BEGIN”);//開始事務定義
if(!mysql_query(“insert
into trans (id)
values(‘2’)”))
{
mysql_query(“ROOLBACK”);//判斷當執行失敗時回滾
}
if(!mysql_query(“insert
into trans (id)
values(‘4’)”))
{
mysql_query(“ROOLBACK”);//判斷執行失敗回滾
}
mysql_query(“COMMIT”);//執行事務
mysql_close($handler);
?
引自:
PHP開發怎麼學習?PHP學習有沒有什麼方法?
一、學前準備
1、建議首先要對網站有個整體的認識,對做網站需要學習的知識要有個認識,從而確定自己的學習方向,不要學一半,又覺得自己似乎不適合學這個,而半途改道,這樣很浪費時間,也不是學技術的人該有的心態。
2、PHP是什麼網上有很多資料這裡不多說了,自己一定要好好看看。由於它是開源的可以從一些網站上下載很多源碼,甚至整站源碼。但是如果你想要學的好的話,很多東西東西都是自己設計,而不是二次開發。
3、強調一下php並不是想網上一些人說的那樣簡單,它只是語法簡單,深入還是要努力。
二、學習順序
(1)熟悉HTML/CSS/JS等網頁基本元素
(2)理解動態語言的概念,運做機制,熟悉PHP語法
(3)學習如何將PHP與HTML結合起來完成簡單動態頁面
(4)接觸MYSQL,開始設計數據庫程序,學會基本對數據庫的操作
(5)學會一個模版(建議是smarty),會話控制session和cookie,ajax
(6)繼續深入學會怎麼設計一個優秀的數據庫
三、學習方法總結
1, 學習資料:一本好的書籍+配套的視頻+幾個常用的網站
2, 開發工具:記事本,eclipse,Zend Studio 。
學習階段可以使用記事本,但是它的開發效率低,開發的時候要用到其他開發工具,eclipse,Zend
Studio是兩款最常用的工具。Eclipse是完全免費的產品,Zend
Studio(是一款集成開發軟件)是收費,但是它的破解方法很簡單。當然還有其他的開發軟件,自己可以挑選一個適合自己的。
3, 剛開始學習的時候基本上都會要學習lamp或者是wamp的環境的搭建,搭建環境的過程不是很多,但是可能會遇到很多問題(也可能你運氣好一次搭建好),千萬不要灰心,一定會解決的。
4, 在學習php的前期雖然用不到那麼多數據庫的知識,但是懂得怎麼使用它是很有必要的。等你可以開發網站後,設計一個好的數據庫就會成為一個成功的網站關鍵。
5, 在學習的過程中還要準備各種開發手冊,php手冊,mysql手冊,以及一些框架的手冊。
6, php是一種後台語言,但是在學習後台之前還需要學習前台語言,DIV+CSS,HTML,JavaScript,以及實現異步傳輸的ajax。
7, 學習ajax基本上是必須,但是學習它之前最好學習了javascript和xml,這樣才能從本質上了解原理。
8,有很多軟件專門用來管理和設計數據庫,這個很方便但是你一定要懂得sql語言,才能更好的設計數據庫,以及在php中用對數據庫進行相關的操作。
9,eclipse默認是不能開發php的,需要你對它進行擴展。擴展後要安裝Xdebugger或者是Zend_Debugger,安裝以後才能進行調試,調試和java調試基本一樣。
10,在學習php的過程中一定會遇到很多問題,你一定會去查找各種資料或者是別人,但是很有可能你下次遇到還是不懂,所以這就需要你要把遇到過的問題和解決方法記錄下來。
學習IT類,不論是哪一類不能僅靠理論知識,實戰和項目(也就是多練習)是重點!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/190030.html