本文實例講解了PHP使用MySQL事物的實例,並備有注釋加以詳細說明。分享給大家供大家參考之用。
具體實例如下所示:
<?php //數據庫連接 $conn = mysql_connect('localhost', 'root', ''); mysql_select_db('test', $conn); mysql_query("SET NAMES GBK"); /* 支持事務的表必須是InnoDB類型 一段事務中只能出現一次: mysql_query('START TRANSACTION');//開始事務 mysql_query(' ROLLBACK ');//回滾事務 mysql_query('COMMIT');//提交事務 如果一段事務中出現多次回滾事務,則在,提交事務時只將第一次回滾前至開始事務後對數據庫的所有操作取消,第一次回滾後至提交事務前所有對數據庫操作仍將有效,所以一般將回滾語句僅放在提交事務語句前 如果一段事務無提交語句,則從開始事務時以下的所有對數據庫操作雖執行(執行方法返回對錯),但對數據庫無影響,但是在執行下段開始事務語句時,前段事務自動提交 */ mysql_query('START TRANSACTION'); $isBad = 0; $ins_testTable1 = "INSERT INTO testtable1(NAME,age)VALUES('first',23)"; if(!mysql_query($ins_testTable1)){ $isBad =1; } //插入語句字段名有錯 $ins_testTable2 = "INSERT INTO testtable1(NAME,ages)VALUES('second','24')"; if(!mysql_query($ins_testTable2)){ $isBad =1; } if($isBad == 1){ echo $isBad; mysql_query('ROLLBACK '); } mysql_query('COMMIT'); mysql_close($conn); ?>
希望本文所述實例對大家PHP+MySQL程序設計的學習有所幫助。
對呀,進行大量的INSERT或SELECT語句時MyISAM速度最快如果需要全文搜索功能,也應該使用MyISAM當事務非常重要(例如存儲財務數據的表格),或在INSERT和SELECT語句是交錯執行的情況下(例如在線的消息欄或論壇系統)時應該用InnoDB對於臨時表格或者要實現視圖,可以使用MEMORY表格,
下面這個,是針對php5的一個簡單數據庫封裝類,適合學習,其他的如刪除、更新等操作,你可以自己加上:
<?php
class Mysql{ //首先定義一個類,首寫字母大寫
public $host;//服務器名,訪問修飾符PUBLIC證明$host是一個公共的屬情在類的內部外部都可訪問,可以被繼承
public $user;//用戶名,是公共的屬性
private $pass;//密碼,問修飾符private證明$pass是私有的.只能在類的內部使用且不能被繼承.
public $dbname;//數據庫名,也是公共的屬性.
//__construct聲名這是一個造函數,定義一些初始的信息.有三個參數
public function __construct($host,$user,$pass,$dbname){
$this->host = $host;
$this->user = $user;
$this->pass = $pass;
$this->dbname = $dbname;
$link = @mysql_connect($this->host,$this->user,$this->pass)
or die("error");
@mysql_select_db($this->dbname,$link)
or die("error2");
}
//定義數據庫的查尋和顯示函數
function myQuery($sql){
$result = mysql_query($sql);
if(!$result){
echo "error3";
exit;
}
$num = mysql_num_rows($result);
if($num){
echo "NO".$num;
}
while($row = mysql_fetch_assoc($result)){
echo '<tr><td bgcolor="#fffddd"><pre>'.htmlspecialchars(stripslashes($row['body']))."<pre></td></tr>";
}
}
}
$rutt = new Mysql('localhost','root','ssss','calvin');//實例化一個類...記住這裡的參數是和構造函數的參數一樣的...
$rutt->myQuery(......余下全文>>