~george-edison55/jsstudio/addons_site

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php

//=======================================================================
//                            model.php
//                  Copyright (C) 2011 Nathan Osman
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
//=======================================================================

// The database connection details are stored in the file mysql.php
require_once 'mysql_info.inc';

class Model
{
    private $sql        = null;
    private $table_name = null;
    
    function __construct($table_name)
    {
        $this->table_name = $table_name;
        
        // Attempt to make the connection to the database
        $this->sql = new mysqli(mysql_server_host,
                                mysql_server_username,
                                mysql_server_password,
                                mysql_server_db_name);
        
        // Check to see if an error occurred
        if($this->sql->connect_error != null)
            throw new Exception($this->sql->connect_error);
    }
    
    public function Query()
    {
        // Construct the query
        $query = "SELECT * FROM {$this->table_name}";
        
        // Prepare the statement
        $statement = $this->sql->prepare($query);
        if($statement === FALSE)
            throw new Exception($this->sql->error);
        
        // Execute the statement
        if($statement->execute() === FALSE)
            throw new Exception($this->sql->error);
        
        // Storage for the results
        $results = array();
        
        // We need to get the number of columns returned.
        $metadata = $statement->result_metadata();
        while($column = $metadata->fetch_field())
            $columns[$column->name] = &$results[$column->name];
        
        // Now bind the results
        call_user_func_array(array($statement, 'bind_result'),
                             $columns);
        
        // Return the results
        $ret = array();
        
        // Loop through the rows
        while($statement->fetch())
        {
            $row = array();
            foreach($results as $key => $value)
                $row[$key] = $value;
            
            $ret[] = $row;
        }
        
        return $ret;
    }
}

?>