Heim >Backend-Entwicklung >PHP-Tutorial >PHP安装网站的时候,前端动态显示数据库创建了哪个表的效果是怎么实现的?

PHP安装网站的时候,前端动态显示数据库创建了哪个表的效果是怎么实现的?

WBOY
WBOYOriginal
2016-06-06 20:20:531291Durchsuche

如题,想要实现的效果是后台更改了哪条数据,在前台也显示正在修改这条数据

回复内容:

如题,想要实现的效果是后台更改了哪条数据,在前台也显示正在修改这条数据

<code>$table_name = 'user';
echo '正在创建数据表:'.$table_name;
//action code
$result = $flag ? '成功':'失败';
echo '数据表'.$table_name.'创建'.$result;</code>

因为PHP是顺序执行的,执行到哪里,输出就好了。
这里主要涉及到str_repeat()和flush()俩个函数和浏览器缓冲区大小。
不同浏览器缓冲区大小不一样,str_repeat值也不一样,只有这一个细节需要注意。

这个有点难啊,你判断一下页面进来的时间。另外每次修改数据的时候记录下来时间到数据库。然后对比这两个时间,如果相近就显示为 正在修改数据。这样可能比较简单,实现的方案当然可以有很多种了

主要了解的技术:PHP OB缓存原理
PHP缓存机制——OB缓存

可以参考onethink安装的代码:

<code>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 "<script type='\"text/javascript\"'>showmsg(\"{$msg}\", \"{$class}\")</script>";
    flush();
    ob_flush();
}
</code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn