PHP安裝網站的時候,前端動態顯示資料庫建立了哪個表的效果是怎麼實現的?

來源:互聯網
上載者:User
如題,想要實現的效果是後台更改了哪條資料,在前台也顯示正在修改這條資料

回複內容:

如題,想要實現的效果是後台更改了哪條資料,在前台也顯示正在修改這條資料

$table_name = 'user';echo '正在建立資料表:'.$table_name;//action code$result = $flag ? '成功':'失敗';echo '資料表'.$table_name.'建立'.$result;

因為PHP是順序執行的,執行到哪裡,輸出就好了。
這裡主要涉及到str_repeat()和flush()倆個函數和瀏覽器緩衝區大小。
不同瀏覽器緩衝區大小不一樣,str_repeat值也不一樣,只有這一個細節需要注意。

這個有點難啊,你判斷一下頁面進來的時間。另外每次修改資料的時候記錄下來時間到資料庫。然後對比這兩個時間,如果相近就顯示為 正在修改資料。這樣可能比較簡單,實現的方案當然可以有很多種了

主要瞭解的技術:PHP OB緩衝原理
PHP緩衝機制——OB緩衝

可以參考onethink安裝的代碼:

function create_tables($db, $prefix = ''){    //讀取SQL檔案    $sql = file_get_contents(MODULE_PATH . 'Data/install.sql');    $sql = str_replace("\r", "\n", $sql);    $sql = explode(";\n", $sql);    //替換表首碼    $orginal = 'youyu_';    $sql = str_replace(" `{$orginal}", " `{$prefix}", $sql);    //開始安裝    show_msg('開始安裝資料庫...');    foreach ($sql as $value) {        $value = trim($value);        if(empty($value)) continue;        if(substr($value, 0, 12) == 'CREATE TABLE') {            $name = preg_replace("/^CREATE TABLE `(\w+)` .*/s", "\\1", $value);            $msg  = "建立資料表{$name}";            if(false !== $db->execute($value)){                show_msg($msg . '...成功');            } else {                show_msg($msg . '...失敗!', 'error');                session('error', true);            }        } else {            $db-> ($value);        }    }}function show_msg($msg, $class = ''){    echo "";    flush();    ob_flush();}
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.