Skip to content

从数据库获取数据

zhanglei edited this page Nov 21, 2020 · 4 revisions

下面的例子我们来看一下如何使用phpsciter和数据库进行交互,具体例子位于examples\load-db下面

1.编写入口文件

<?php

//include_once 'resource/mysql_pdo.php';


$oSciter = new PHPSciter();
$oSciter->setResourcePath('file://' . __DIR__ . '/html/');
$oSciter->setWindowFrame(100, 100, 100 + 500 + 1, 100 + 500 + 1);
$oSciter->setWindowTitle('hello');
$oSciter->loadFile('index.php');



$oSciter->setOption(PHPSciter::SCITER_SET_SCRIPT_RUNTIME_FEATURES,
PHPSciter::ALLOW_FILE_IO | PHPSciter::ALLOW_SOCKET_IO | PHPSciter::ALLOW_EVAL |
                               PHPSciter::ALLOW_SYSINFO);


$oSciter->run(PHPSciter::SW_TITLEBAR | PHPSciter::SW_RESIZEABLE | PHPSciter::SW_MAIN | PHPSciter::SW_ENABLE_DEBUG
|PHPSciter::SW_CONTROLS);
?>

在load-db文件夹下,建立html,编写index.php,这个文件主要用来在sciter引擎中,加入函数get_list,绑定完成后引入index.html,进行界面渲染

<?php

<?php
class TestSciter
{
    static public function getDataFromMySQL($limit)
    {
//        $sMysqlPdo = mysql_pdo::instance();
//        $data      = $sMysqlPdo->testQuery($limit);
//        var_dump($data);

        $data = array(
            array(
                'user_id'      => 1,
                'user_company' => 'aaa',
            ), array(
                'user_id'      => 2,
                'user_company' => 'bbb',
            ),
        );
//
//        $data = array('user_id','aaaa','user_company','cccc','dddd');

        return $data;
    }
}
$defineResult = PHPSciter::defineFunction('get_list', 'TestSciter::getDataFromMySQL');
include_once "index.html";

2.引入数据库驱动类

<?php
include_once __DIR__ . "/../resource/mysql_pdo.php";
class TestSciter
{
    static public function getDataFromMySQL($limit)
    {
       $sMysqlPdo = mysql_pdo::instance();
       $data      = $sMysqlPdo->testQuery($limit);
       var_dump($data);

//         $data = array(
//             array(
//                 'user_id'      => 1,
//                 'user_company' => 'aaa',
//             ), array(
//                 'user_id'      => 2,
//                 'user_company' => 'bbb',
//             ),
//         );
//
       $data = array('user_id','aaaa','user_company','cccc','dddd');

        return $data;
    }
}
$defineResult = PHPSciter::defineFunction('get_list', 'TestSciter::getDataFromMySQL');
include_once "index.html";

3.引入要渲染的htmlindex.html

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div>
    Get Data From MySQL:
    <button id="get_list_bun" data-limit="5">Get List</button>
    <br/>
</div>

<div id="data_json"> </div>
<br />
<div id="data_area">

</div>
<script type="text/tiscript">
                $(#get_list_bun).on("click", function() {
                    
                    var limit = this.attributes["data-limit"];
            
                    var data = view.get_list(limit,"我是汉字","abcdefg",100);
            
                    var result = "";
                    result += "limit -> " + limit + "<br />";
                    result += "data.length -> " + data.length + "<br />";

                    for (var i=0;i<data.length;i++) {
                        result += " i: " + i;
                        result += " user_id: " + data[i].user_id;
                        result += " company_name: " + data[i].user_company;
                        result += "<br />";
                    }
                    
                    result += "读取完成";
            
                    $(#data_area).html = result;
                    $(#data_json).html = JSON.stringify(data);
                });

</script>
</body>
</html>

4. 点击页面get_list,看到了数据库数据的展示