第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

PHP+MySQL事務(wù)示例

PHP+MySQL事務(wù)示例

湖上湖 2019-06-04 17:27:59
PHP+MySQL事務(wù)示例我真的沒有找到使用MySQL事務(wù)的PHP文件的正常示例。你能給我舉個(gè)簡單的例子嗎?還有一個(gè)問題。我已經(jīng)做了很多編程并且不使用事務(wù)。我能把一個(gè)PHP函數(shù)或者什么東西放進(jìn)去嗎?header.php如果一個(gè)mysql_query失敗了,那么其他人也失敗了?我想我已經(jīng)搞清楚了,對嗎?mysql_query("SET AUTOCOMMIT=0");mysql_query("START TRANSACTION");$a1 = mysql_query("INSERT INTO rarara (l_id) VALUES('1')"); $a2 = mysql_query("INSERT INTO rarara (l_id) VALUES('2')");if ($a1 and $a2) {     mysql_query("COMMIT");} else {             mysql_query("ROLLBACK");}
查看完整描述

3 回答

?
慕田峪9158850

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊

我在處理事務(wù)時(shí)通常使用的想法如下所示(半偽碼):

try {
    // First of all, let's begin a transaction
    $db->beginTransaction();

    // A set of queries; if one fails, an exception should be thrown
    $db->query('first query');
    $db->query('second query');
    $db->query('third query');

    // If we arrive here, it means that no exception was thrown
    // i.e. no query has failed, and we can commit the transaction
    $db->commit();} catch (Exception $e) {
    // An exception has been thrown
    // We must rollback the transaction
    $db->rollback();}


請注意,根據(jù)這種想法,如果查詢失敗,則必須拋出異常:

  • PDO可以這樣做,這取決于您如何配置它。
  • 否則,使用其他API,您可能需要測試用于執(zhí)行查詢的函數(shù)的結(jié)果,并親自拋出異常。


不幸的是,這里面沒有魔法。您不能只是將指令放在某個(gè)地方,然后自動(dòng)完成事務(wù):您仍然必須指定在事務(wù)中必須執(zhí)行哪組查詢。

例如,在事務(wù)處理之前,您經(jīng)常會(huì)有幾個(gè)查詢(在begin)以及事務(wù)后的另幾個(gè)查詢(兩者之一之后)commitrollback)不管發(fā)生了什么,你都希望這些查詢被執(zhí)行(或否)在交易中。


查看完整回答
反對 回復(fù) 2019-06-04
?
Cats萌萌

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊

我想我已經(jīng)搞清楚了,對嗎?

mysql_query("START TRANSACTION");$a1 = mysql_query("INSERT INTO rarara (l_id) VALUES('1')");
$a2 = mysql_query("INSERT INTO rarara (l_id) VALUES('2')");if ($a1 and $a2) {
    mysql_query("COMMIT");} else {        
    mysql_query("ROLLBACK");}


查看完整回答
反對 回復(fù) 2019-06-04
?
炎炎設(shè)計(jì)

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊

<?php// trans.phpfunction begin(){
    mysql_query("BEGIN");}function commit(){
    mysql_query("COMMIT");}function rollback(){
    mysql_query("ROLLBACK");}mysql_connect("localhost","Dude1", "SuperSecret") or die(mysql_error());
    mysql_select_db("bedrock") or die(mysql_error());
    $query = "INSERT INTO employee (ssn,name,phone) values
    ('123-45-6789','Matt','1-800-555-1212')";begin(); // transaction begins$result = mysql_query($query);if(!$result){
    rollback(); // transaction rolls back
    echo "transaction rolled back";
    exit;}else{
    commit(); // transaction is committed
    echo "Database transaction was successful";}?>


查看完整回答
反對 回復(fù) 2019-06-04
  • 3 回答
  • 0 關(guān)注
  • 571 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號