国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Home php教程 php手冊 php database class suitable for mysql sql service

php database class suitable for mysql sql service

Oct 15, 2016 am 10:31 AM

BaseModel basic Model class. Other database table files are based on this class. The current link is the database of sql service. For mysql, you only need to modify the query and execute

<?<span style="color: #000000;">php
</span><span style="color: #008000;">/*</span><span style="color: #008000;">*
 * 數(shù)據(jù)庫基礎(chǔ)類
 * @author ***
 </span><span style="color: #008000;">*/</span>
<span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> BaseModel
{
    </span><span style="color: #0000ff;">static</span> <span style="color: #800080;">$model</span><span style="color: #000000;">;
    </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$sql</span><span style="color: #000000;">;
    </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$PrimaryKeyField</span>; <span style="color: #008000;">//</span><span style="color: #008000;">主鍵字段名</span>
    <span style="color: #0000ff;">private</span> <span style="color: #800080;">$field_values</span>;<span style="color: #008000;">//</span><span style="color: #008000;">存放數(shù)據(jù)庫字段數(shù)組</span>
    <span style="color: #0000ff;">protected</span> <span style="color: #800080;">$db</span><span style="color: #000000;">;
    </span><span style="color: #0000ff;">protected</span> <span style="color: #800080;">$pk</span>; <span style="color: #008000;">//</span><span style="color: #008000;">主鍵</span>
    <span style="color: #0000ff;">protected</span> <span style="color: #800080;">$table</span><span style="color: #000000;">;
    </span><span style="color: #0000ff;">protected</span> <span style="color: #800080;">$field</span> = '*'<span style="color: #000000;">;
    </span><span style="color: #0000ff;">protected</span> <span style="color: #800080;">$where</span><span style="color: #000000;">;
    </span><span style="color: #0000ff;">protected</span> <span style="color: #800080;">$orderby</span><span style="color: #000000;">;
    </span><span style="color: #0000ff;">protected</span> <span style="color: #800080;">$limit</span><span style="color: #000000;">;
    </span><span style="color: #0000ff;">protected</span> <span style="color: #800080;">$groupby</span><span style="color: #000000;">;
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 初始化
     *
     * @global array $TmacConfig
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> __construct()
    {
        </span><span style="color: #800080;">$this</span>->db = <span style="color: #800080;">$this</span>-><span style="color: #000000;">getDB();
    }
    
    </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> getDB()
    {
        </span><span style="color: #0000ff;">if</span>(<span style="color: #0000ff;">empty</span>(self::<span style="color: #800080;">$model</span><span style="color: #000000;">)){
            </span><span style="color: #800080;">$mssql</span> = <span style="color: #0000ff;">new</span> Mssql(DB_DEFAULT_HOST, DB_DEFAULT_NAME, DB_DEFAULT_PASSWD,<span style="color: #000000;"> DB_DEFAULT_DATABASE);
            self</span>::<span style="color: #800080;">$model</span> = <span style="color: #800080;">$mssql</span>-><span style="color: #000000;">getInstance();
        }
        </span><span style="color: #0000ff;">return</span> self::<span style="color: #800080;">$model</span><span style="color: #000000;">;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 設(shè)置SQL語句
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">function</span> setSQL(<span style="color: #800080;">$sql</span><span style="color: #000000;">)
    {
        </span><span style="color: #800080;">$this</span>->sql = <span style="color: #800080;">$sql</span><span style="color: #000000;">;
    }

    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 獲取SQL語句
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span><span style="color: #000000;"> getSQL()
    {
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>-><span style="color: #000000;">sql;
    }

    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 設(shè)置field_values
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span> setFieldValues(<span style="color: #0000ff;">array</span> <span style="color: #800080;">$field_values</span><span style="color: #000000;">)
    {
        </span><span style="color: #800080;">$this</span>->field_values = <span style="color: #800080;">$field_values</span><span style="color: #000000;">;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 獲取field_values
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> getFieldValues()
    {
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>-><span style="color: #000000;">field_values;
    }

    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 設(shè)置主鍵字段名
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">protected</span> <span style="color: #0000ff;">function</span> setPrimaryKeyField(<span style="color: #800080;">$PrimaryKeyField</span><span style="color: #000000;">)
    {
        </span><span style="color: #800080;">$this</span>->PrimaryKeyField = <span style="color: #800080;">$PrimaryKeyField</span><span style="color: #000000;">;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 獲取主鍵字段名
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">protected</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> getPrimaryKeyField()
    {
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>-><span style="color: #000000;">PrimaryKeyField;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 設(shè)置表名
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">protected</span> <span style="color: #0000ff;">function</span> setTable(<span style="color: #800080;">$table</span><span style="color: #000000;">)
    {
        </span><span style="color: #800080;">$this</span>->table = <span style="color: #800080;">$table</span><span style="color: #000000;">;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 獲取表名
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">protected</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> getTable()
    {
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>-><span style="color: #000000;">table;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 設(shè)置主鍵
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span> setPk(<span style="color: #800080;">$pk</span><span style="color: #000000;">)
    {
        </span><span style="color: #800080;">$this</span>->pk = <span style="color: #800080;">$pk</span><span style="color: #000000;">;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 獲取主鍵
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span><span style="color: #000000;"> getPk()
    {
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>-><span style="color: #000000;">pk;
    }

        </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 設(shè)置Fields
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span> setFields(<span style="color: #800080;">$fields</span><span style="color: #000000;">)
    {
        </span><span style="color: #800080;">$this</span>->field = <span style="color: #800080;">$fields</span><span style="color: #000000;">;
    }
    
        </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 獲取Fields
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span><span style="color: #000000;"> getFields()
    {
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>-><span style="color: #000000;">field;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 設(shè)置where條件
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span> setWhere(<span style="color: #800080;">$where</span><span style="color: #000000;">)
    {
        </span><span style="color: #800080;">$this</span>->where = <span style="color: #800080;">$where</span><span style="color: #000000;">;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 獲取where條件
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span><span style="color: #000000;"> getWhere()
    {
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>-><span style="color: #000000;">where;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 設(shè)置Group
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span> setGroupBy(<span style="color: #800080;">$groupby</span><span style="color: #000000;">)
    {
        </span><span style="color: #800080;">$this</span>->groupby = <span style="color: #800080;">$groupby</span><span style="color: #000000;">;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 獲取Group
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span><span style="color: #000000;"> getGroupBy()
    {
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>-><span style="color: #000000;">groupby;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 設(shè)置Order
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span> setOrderBy(<span style="color: #800080;">$orderby</span><span style="color: #000000;">)
    {
        </span><span style="color: #800080;">$this</span>->orderby = <span style="color: #800080;">$orderby</span><span style="color: #000000;">;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 設(shè)置Order
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span><span style="color: #000000;"> getOrderBy()
    {
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>-><span style="color: #000000;">orderby;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 設(shè)置條數(shù)
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span> setLimit( <span style="color: #800080;">$limit</span><span style="color: #000000;"> )
    {
        </span><span style="color: #800080;">$this</span>->limit = <span style="color: #800080;">$limit</span><span style="color: #000000;">;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 獲取條數(shù)
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span><span style="color: #000000;"> getLimit()
    {
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>-><span style="color: #000000;">limit;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 根據(jù)主鍵獲取
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span><span style="color: #000000;"> getInfoByPk()
    {
        </span><span style="color: #800080;">$sql</span> = "select {<span style="color: #800080;">$this</span>->getFields()} "
            ."from {<span style="color: #800080;">$this</span>->getTable()} "
            ."where {<span style="color: #800080;">$this</span>->getPrimaryKeyField()}={<span style="color: #800080;">$this</span>->getPk()}"<span style="color: #000000;">;
        </span><span style="color: #800080;">$result</span> = <span style="color: #800080;">$this</span>->query(<span style="color: #800080;">$sql</span><span style="color: #000000;">);
        </span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">$result</span> != <span style="color: #0000ff;">NULL</span><span style="color: #000000;">){
            </span><span style="color: #800080;">$result</span> = <span style="color: #800080;">$result</span>[0<span style="color: #000000;">];
        }
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$result</span><span style="color: #000000;">;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 根據(jù)where條件獲取一條信息
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span><span style="color: #000000;"> getOneByWhere()
    {
        </span><span style="color: #800080;">$sql</span> = "SELECT {<span style="color: #800080;">$this</span>->getFields()} "
                . "FROM {<span style="color: #800080;">$this</span>->getTable()} "
                . "WHERE {<span style="color: #800080;">$this</span>->getWhere()}"<span style="color: #000000;">;
        </span><span style="color: #800080;">$res</span> = <span style="color: #800080;">$this</span>->query( <span style="color: #800080;">$sql</span><span style="color: #000000;"> );
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$res</span>[0<span style="color: #000000;">];
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 根據(jù)where條件獲取數(shù)組列表
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span><span style="color: #000000;"> getListByWhere()
    {
        </span><span style="color: #800080;">$sql</span> = "SELECT "<span style="color: #000000;">;
        </span><span style="color: #0000ff;">if</span> ( <span style="color: #800080;">$this</span>->getLimit() != <span style="color: #0000ff;">null</span><span style="color: #000000;"> ) {
            </span><span style="color: #800080;">$line_str</span> = <span style="color: #800080;">$this</span>->getWhere() != <span style="color: #0000ff;">null</span> ? "AND " : "WHERE "<span style="color: #000000;">;
            </span><span style="color: #0000ff;">if</span> (<span style="color: #008080;">strpos</span>(<span style="color: #800080;">$this</span>->getLimit(), ',') !== <span style="color: #0000ff;">FALSE</span><span style="color: #000000;">){
                </span><span style="color: #0000ff;">list</span>(<span style="color: #800080;">$page</span>, <span style="color: #800080;">$count</span>) = <span style="color: #008080;">explode</span>(',', <span style="color: #800080;">$this</span>-><span style="color: #000000;">getLimit());
                </span><span style="color: #800080;">$page_str</span> = <span style="color: #800080;">$count</span>*(<span style="color: #800080;">$page</span>-1<span style="color: #000000;">);
                </span><span style="color: #800080;">$sql</span> .= "TOP <span style="color: #800080;">$count</span> "<span style="color: #000000;">;
            } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> {
                </span><span style="color: #800080;">$sql</span> .= "TOP {<span style="color: #800080;">$this</span>->getLimit()} "<span style="color: #000000;">;
            }
        }
        </span><span style="color: #800080;">$sql</span> .= "{<span style="color: #800080;">$this</span>->getFields()} "
                . "FROM {<span style="color: #800080;">$this</span>->getTable()} "<span style="color: #000000;">;
        </span><span style="color: #0000ff;">if</span> ( <span style="color: #800080;">$this</span>->getWhere() != <span style="color: #0000ff;">null</span><span style="color: #000000;"> ) {
            </span><span style="color: #800080;">$sql</span> .= "WHERE {<span style="color: #800080;">$this</span>->getWhere()} "<span style="color: #000000;">;
        }
        </span><span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">isset</span>(<span style="color: #800080;">$page_str</span>) && <span style="color: #800080;">$page_str</span> != <span style="color: #0000ff;">NULL</span><span style="color: #000000;">){
            </span><span style="color: #800080;">$line_str</span> = <span style="color: #800080;">$this</span>->getWhere() != <span style="color: #0000ff;">null</span> ? "AND " : "WHERE "<span style="color: #000000;">;
            </span><span style="color: #800080;">$sql</span> .= "{<span style="color: #800080;">$line_str</span>} {<span style="color: #800080;">$this</span>->getPrimaryKeyField()} not in (select top <span style="color: #800080;">$page_str</span> {<span style="color: #800080;">$this</span>->getPrimaryKeyField()} from {<span style="color: #800080;">$this</span>->getTable()}) "<span style="color: #000000;">;
        }
        </span><span style="color: #0000ff;">if</span> ( <span style="color: #800080;">$this</span>->getGroupby() != <span style="color: #0000ff;">null</span><span style="color: #000000;"> ) {
            </span><span style="color: #800080;">$sql</span> .= "GROUP BY {<span style="color: #800080;">$this</span>->getGroupby()} "<span style="color: #000000;">;
        }
        </span><span style="color: #0000ff;">if</span> ( <span style="color: #800080;">$this</span>->getOrderby() != <span style="color: #0000ff;">null</span><span style="color: #000000;"> ) {
            </span><span style="color: #800080;">$sql</span> .= "ORDER BY {<span style="color: #800080;">$this</span>->getOrderby()} "<span style="color: #000000;">;
        }
        </span><span style="color: #800080;">$res</span> = <span style="color: #800080;">$this</span>->query( <span style="color: #800080;">$sql</span><span style="color: #000000;"> );
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$res</span><span style="color: #000000;">;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 根據(jù)where獲取count
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span><span style="color: #000000;"> getCountByWhere()
    {
        </span><span style="color: #800080;">$sql_count</span> = "SELECT COUNT(*) AS total FROM {<span style="color: #800080;">$this</span>->getTable()} "<span style="color: #000000;">;
        </span><span style="color: #0000ff;">if</span> ( <span style="color: #800080;">$this</span>->getWhere() != <span style="color: #0000ff;">null</span><span style="color: #000000;"> ) {
            </span><span style="color: #800080;">$sql_count</span> .= "WHERE " . <span style="color: #800080;">$this</span>-><span style="color: #000000;">getWhere();
        }
        </span><span style="color: #800080;">$count</span> = <span style="color: #800080;">$this</span>->query( <span style="color: #800080;">$sql_count</span><span style="color: #000000;"> );
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$count</span> != <span style="color: #0000ff;">NULL</span> ? <span style="color: #800080;">$count</span>[0]['total'] : 0<span style="color: #000000;">;
    }


    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 根據(jù)主鍵更新
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span> updateByPk(<span style="color: #800080;">$fieldList</span><span style="color: #000000;">)
    {
        </span><span style="color: #800080;">$sql</span> = "UPDATE {<span style="color: #800080;">$this</span>->getTable()} SET "<span style="color: #000000;">;
        </span><span style="color: #0000ff;">foreach</span> (<span style="color: #800080;">$this</span>->getFieldValues() <span style="color: #0000ff;">as</span> <span style="color: #800080;">$key</span> => <span style="color: #800080;">$one</span><span style="color: #000000;">){
            </span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">$one</span> != <span style="color: #0000ff;">NULL</span><span style="color: #000000;">){
                </span><span style="color: #800080;">$sql</span> .= "<span style="color: #800080;">$key</span>='<span style="color: #800080;">$one</span>',"<span style="color: #000000;">;
            }
        }
        </span><span style="color: #800080;">$sql</span> = <span style="color: #008080;">rtrim</span>(<span style="color: #800080;">$sql</span>, ','<span style="color: #000000;">);
        </span><span style="color: #800080;">$sql</span> .= " WHERE {<span style="color: #800080;">$this</span>->getPrimaryKeyField()}='{<span style="color: #800080;">$this</span>->getPk()}'"<span style="color: #000000;">;
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>->execute(<span style="color: #800080;">$sql</span><span style="color: #000000;">);
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 根據(jù)WHERE更新
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span> updateByWhere(<span style="color: #800080;">$fieldList</span><span style="color: #000000;">)
    {
        </span><span style="color: #800080;">$sql</span> = "UPDATE {<span style="color: #800080;">$this</span>->getTable()} SET "<span style="color: #000000;">;
        </span><span style="color: #0000ff;">foreach</span> (<span style="color: #800080;">$this</span>->getFieldValues() <span style="color: #0000ff;">as</span> <span style="color: #800080;">$key</span> => <span style="color: #800080;">$one</span><span style="color: #000000;">){
            </span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">$one</span> != <span style="color: #0000ff;">NULL</span><span style="color: #000000;">){
                </span><span style="color: #800080;">$sql</span> .= "<span style="color: #800080;">$key</span>='<span style="color: #800080;">$one</span>',"<span style="color: #000000;">;
            }
        }
        </span><span style="color: #800080;">$sql</span> = <span style="color: #008080;">rtrim</span>(<span style="color: #800080;">$sql</span>, ','<span style="color: #000000;">);
        </span><span style="color: #800080;">$sql</span> .= " {<span style="color: #800080;">$this</span>->getWhere()}"<span style="color: #000000;">;
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>->execute(<span style="color: #800080;">$sql</span><span style="color: #000000;">);
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 根據(jù)WHERE更新
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span> insert(<span style="color: #800080;">$fieldList</span><span style="color: #000000;">)
    {
        </span><span style="color: #800080;">$sql_values</span> = ''<span style="color: #000000;">;
        </span><span style="color: #800080;">$sql</span> = "INSERT INTO {<span style="color: #800080;">$this</span>->getTable()} ("<span style="color: #000000;">;
        </span><span style="color: #0000ff;">foreach</span> (<span style="color: #800080;">$this</span>->getFieldValues() <span style="color: #0000ff;">as</span> <span style="color: #800080;">$key</span> => <span style="color: #800080;">$one</span><span style="color: #000000;">){
            </span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">$one</span> != <span style="color: #0000ff;">NULL</span><span style="color: #000000;">){
                </span><span style="color: #800080;">$sql</span> .= "<span style="color: #800080;">$key</span>,"<span style="color: #000000;">;
                </span><span style="color: #800080;">$sql_values</span> .= "'<span style="color: #800080;">$one</span>',"<span style="color: #000000;">;
            }
        }
        </span><span style="color: #800080;">$sql</span> = <span style="color: #008080;">rtrim</span>(<span style="color: #800080;">$sql</span>, ',').") VALUES (".<span style="color: #008080;">rtrim</span>(<span style="color: #800080;">$sql_values</span>, ',').")"<span style="color: #000000;">;
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>->execute(<span style="color: #800080;">$sql</span><span style="color: #000000;">);
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * odbc query操作
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">function</span> query(<span style="color: #800080;">$sql</span><span style="color: #000000;">)
    {
        </span><span style="color: #800080;">$this</span>->setSQL(<span style="color: #800080;">$sql</span><span style="color: #000000;">);
        </span><span style="color: #800080;">$data</span> = <span style="color: #0000ff;">array</span><span style="color: #000000;">();
        </span><span style="color: #800080;">$sql</span> = <span style="color: #008080;">iconv</span>('UTF-8', 'GBK', <span style="color: #800080;">$sql</span><span style="color: #000000;">);
        </span><span style="color: #0000ff;">if</span> (self::<span style="color: #800080;">$model</span> == <span style="color: #0000ff;">NULL</span><span style="color: #000000;">){
            </span><span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">Exception</span>("數(shù)據(jù)庫連接失敗"<span style="color: #000000;">);
        }
        </span><span style="color: #800080;">$result</span> = <span style="color: #008080;">odbc_do</span>(self::<span style="color: #800080;">$model</span>, <span style="color: #800080;">$sql</span><span style="color: #000000;">);
        </span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">$result</span> != <span style="color: #0000ff;">NULL</span><span style="color: #000000;">){
            </span><span style="color: #0000ff;">while</span>(<span style="color: #800080;">$res</span> = <span style="color: #008080;">odbc_fetch_array</span>(<span style="color: #800080;">$result</span><span style="color: #000000;">)){
                </span><span style="color: #0000ff;">foreach</span> (<span style="color: #800080;">$res</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">$key</span> => <span style="color: #800080;">$one</span><span style="color: #000000;">){
                    </span><span style="color: #800080;">$res</span>[<span style="color: #800080;">$key</span>] = <span style="color: #008080;">iconv</span>('GBK', 'UTF-8', <span style="color: #800080;">$one</span><span style="color: #000000;">);
                }
                </span><span style="color: #800080;">$data</span>[] = <span style="color: #800080;">$res</span><span style="color: #000000;">;
            }
        }
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$data</span><span style="color: #000000;">;
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * odbc execute
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">function</span> execute(<span style="color: #800080;">$sql</span>, <span style="color: #800080;">$iconv</span> = <span style="color: #0000ff;">TRUE</span><span style="color: #000000;">)
    {
        </span><span style="color: #800080;">$this</span>->setSQL(<span style="color: #800080;">$sql</span><span style="color: #000000;">);
        </span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">$iconv</span><span style="color: #000000;">){
            </span><span style="color: #800080;">$sql</span> = <span style="color: #008080;">iconv</span>('UTF-8', 'GBK', <span style="color: #800080;">$sql</span><span style="color: #000000;">);
        }
        </span><span style="color: #0000ff;">if</span> (self::<span style="color: #800080;">$model</span> == <span style="color: #0000ff;">NULL</span><span style="color: #000000;">){
            </span><span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">Exception</span>("數(shù)據(jù)庫連接失敗"<span style="color: #000000;">);
        }
        </span><span style="color: #0000ff;">return</span> <span style="color: #008080;">odbc_exec</span>(self::<span style="color: #800080;">$model</span>, <span style="color: #800080;">$sql</span><span style="color: #000000;">);
    }


    </span><span style="color: #008000;">//</span><span style="color: #008000;">析構(gòu)函數(shù),自動關(guān)閉數(shù)據(jù)庫,垃圾回收機(jī)制</span>
    <span style="color: #0000ff;">function</span><span style="color: #000000;"> __destruct() {
        </span><span style="color: #008080;">odbc_close</span>(self::<span style="color: #800080;">$model</span><span style="color: #000000;">);
    }

}



</span><span style="color: #008000;">//</span><span style="color: #008000;"> ++++++++++++++++++++++++++++++++++++++++++++++++
                // 自定義類庫
                // mssql 鏈接類
// ++++++++++++++++++++++++++++++++++++++++++++++++
//一個(gè)普遍通用的PHP連接MYSQL數(shù)據(jù)庫類</span>
<span style="color: #0000ff;">class</span><span style="color: #000000;"> Mssql {
    </span><span style="color: #0000ff;">static</span> <span style="color: #800080;">$conn_line</span><span style="color: #000000;">;
    </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$db_host</span>; <span style="color: #008000;">//</span><span style="color: #008000;">數(shù)據(jù)庫主機(jī)</span>
    <span style="color: #0000ff;">private</span> <span style="color: #800080;">$db_user</span>; <span style="color: #008000;">//</span><span style="color: #008000;">數(shù)據(jù)庫用戶名</span>
    <span style="color: #0000ff;">private</span> <span style="color: #800080;">$db_pwd</span>; <span style="color: #008000;">//</span><span style="color: #008000;">數(shù)據(jù)庫用戶名密碼</span>
    <span style="color: #0000ff;">private</span> <span style="color: #800080;">$db_database</span>; <span style="color: #008000;">//</span><span style="color: #008000;">數(shù)據(jù)庫名</span>
            
    <span style="color: #0000ff;">function</span> __construct(<span style="color: #800080;">$db_host</span>, <span style="color: #800080;">$db_user</span>, <span style="color: #800080;">$db_pwd</span>, <span style="color: #800080;">$db_database</span><span style="color: #000000;">) {
        </span><span style="color: #800080;">$this</span>->db_host = <span style="color: #800080;">$db_host</span><span style="color: #000000;">;
        </span><span style="color: #800080;">$this</span>->db_user = <span style="color: #800080;">$db_user</span><span style="color: #000000;">;
        </span><span style="color: #800080;">$this</span>->db_pwd = <span style="color: #800080;">$db_pwd</span><span style="color: #000000;">;
        </span><span style="color: #800080;">$this</span>->db_database = <span style="color: #800080;">$db_database</span><span style="color: #000000;">;
    }

    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 單例模式處理數(shù)據(jù)庫連接
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span><span style="color: #000000;"> getInstance()
    {
        </span><span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">empty</span>(self::<span style="color: #800080;">$conn_line</span><span style="color: #000000;">)){
            </span><span style="color: #800080;">$connstr</span> = "Driver={SQL Server};Server=".<span style="color: #800080;">$this</span>->db_host.";Database=".<span style="color: #800080;">$this</span>-><span style="color: #000000;">db_database;
            self</span>::<span style="color: #800080;">$conn_line</span> = <span style="color: #008080;">odbc_connect</span>(<span style="color: #800080;">$connstr</span>, <span style="color: #800080;">$this</span>->db_user, <span style="color: #800080;">$this</span>-><span style="color: #000000;">db_pwd);
        }
        </span><span style="color: #0000ff;">return</span> self::<span style="color: #800080;">$conn_line</span><span style="color: #000000;">;
    }
}</span>

The Model class of the database table inherits the BaseModel class

<?<span style="color: #000000;">php
</span><span style="color: #008000;">/*</span><span style="color: #008000;">*
 * 游戲截圖類
 * @author ***
 </span><span style="color: #008000;">*/</span>
<span style="color: #0000ff;">class</span> GameImagesModel <span style="color: #0000ff;">extends</span><span style="color: #000000;"> BaseModel
{
    </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$field_values</span> = <span style="color: #0000ff;">array</span><span style="color: #000000;">(
        </span>'game_id' => '',//key為數(shù)據(jù)庫字段名
        'img_url' => '',
        'atime' => '',
        'add_user' => '',<span style="color: #000000;">
    );
    
    </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> __construct() {
        parent</span>::<span style="color: #000000;">__construct();
        </span><span style="color: #800080;">$this</span>->setTable('game_images'<span style="color: #000000;">);
        </span><span style="color: #800080;">$this</span>->setPrimaryKeyField('id'<span style="color: #000000;">);
    }
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*
     * 字段處理函數(shù)
     * @param array $field_values
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">function</span> setFieldValues(<span style="color: #0000ff;">array</span> <span style="color: #800080;">$field_values</span><span style="color: #000000;">) {
        </span><span style="color: #0000ff;">foreach</span> (<span style="color: #800080;">$field_values</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">$key</span> => <span style="color: #800080;">$one</span><span style="color: #000000;">){
            </span><span style="color: #0000ff;">if</span> (!<span style="color: #008080;">array_key_exists</span>(<span style="color: #800080;">$key</span>, <span style="color: #800080;">$this</span>-><span style="color: #000000;">field_values)){
                </span><span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">Exception</span>(<span style="color: #800080;">$key</span>."不存在"<span style="color: #000000;">);//判斷前端傳來的數(shù)據(jù)是否合理
            }
        }
        parent</span>::setFieldValues(<span style="color: #800080;">$field_values</span><span style="color: #000000;">);
    }
}</span>

Example:

<span style="color: #008000;">//</span><span style="color: #008000;"> 對于GameDetail表的操作</span>
<span style="color: #800080;">$detail_model</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> GameDetailModel();
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 查詢</span>
<span style="color: #800080;">$detail_model</span>->setFields('DId'<span style="color: #000000;">);
</span><span style="color: #800080;">$detail_model</span>->setWhere("1=1"<span style="color: #000000;">);
</span><span style="color: #800080;">$detail_model</span>->setOrderBy("DId DESC"<span style="color: #000000;">);
</span><span style="color: #800080;">$detail_model</span>->setLimit("1"<span style="color: #000000;">);
</span><span style="color: #800080;">$insert_id</span> = <span style="color: #800080;">$detail_model</span>-><span style="color: #000000;">getListByWhere();

</span><span style="color: #008000;">//</span><span style="color: #008000;"> 更新 data的key需要和Model里面設(shè)置的對照 也就是數(shù)據(jù)庫的字段</span>
<span style="color: #800080;">$data</span> = <span style="color: #0000ff;">array</span><span style="color: #000000;">(
        </span>'GameName' => <span style="color: #800080;">$name</span>,
        'Subject' => <span style="color: #800080;">$subject</span>,
        'Grade' => <span style="color: #800080;">$grade</span>,
        'Teach' => <span style="color: #800080;">$teach</span>,
        'Point' => <span style="color: #800080;">$point</span>,
        'IsFree' => <span style="color: #800080;">$free</span>,
        'Detail' => <span style="color: #800080;">$detail</span>,
        'AddTime' => <span style="color: #800080;">$_time</span><span style="color: #000000;">
);
</span><span style="color: #800080;">$detail_model</span>->setPk(<span style="color: #800080;">$id</span><span style="color: #000000;">);
</span><span style="color: #800080;">$detail_model</span>->updateByPk(<span style="color: #800080;">$detail_model</span>->setFieldValues(<span style="color: #800080;">$data</span><span style="color: #000000;">));


</span><span style="color: #008000;">//</span><span style="color: #008000;"> 對于GameImages表的操作
// 插入</span>
<span style="color: #800080;">$image_fields</span> = <span style="color: #0000ff;">array</span><span style="color: #000000;">(
        </span>'game_id' => <span style="color: #800080;">$id</span>,
        'img_url' => <span style="color: #800080;">$image_path</span>,
        'atime' => <span style="color: #800080;">$_time</span>,
        'add_user' => <span style="color: #800080;">$user_id</span>,<span style="color: #000000;">
);
</span><span style="color: #800080;">$images_model</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> GameImagesModel();
</span><span style="color: #800080;">$images_model</span>->insert(<span style="color: #800080;">$images_model</span>->setFieldValues(<span style="color: #800080;">$image_fields</span>));

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

PHP Tutorial
1501
276