ezSQL 概述 下载 ez_sql.zip
创始人邮箱: justin_at_jvmultimedia_dot_com
简体中文汉化: https://github.com/leangjia/ez_SQL_help-zh_cn

 

·         ezSQL 是一份能令您迅速用 PHP 脚本来操作各种数据库的PHP插件包 (几乎包含市面上所有的各类数据库 mySQL / Oracle8/9 / InterBase/FireBird / PostgreSQL / MS-SQL / SQLite / SQLite c++等等);

 

·         它是一个PHP脚本头include导入文件。 然后, 替代平常PHP所需要操作数据库时的function等复杂代码, 你能使用简单一条或三两条代码 就能操作数据库 (易用) 这就是ezSQL  的功效;

 

·         它自动缓存查询结果和允许您使用易于理解的函数来操作和提取它们不造成额外的服务器开销;

 

·         它具有出色的调试功能迅速定位到所需要调试的 SQL 代码;

 

·         大多数ezSQL函数可以返回结果对象、关联数组或数值数组;

 

·         它可以显着减少开发时间,在大多数情况下, 将简化您的代码,使程序运行得更快,以及它非常易于调试和优化数据库查询;

 

·         这个类非常小,根本不会增加您网站的开销;

 

注: 假定您熟悉PHP脚本语言,熟悉数据库的基本概念和掌握构造基本的SQL语句。 但即使你是一个新手本帮助文档亦可帮到你前提是您已经阅读并理解 本教程

 

 

 

 

 

举个简单的粟子..

注意: 全部代码中仅须包含ez_sql.php而无须编写额外的代码。

 

            ----------------------------------------------------

例 1

----------------------------------------------------

 

// 查:从数据库中查询并显示单条或多条记录..

$users = $db->get_results("SELECT name, email FROM users");

 

foreach ( $users as $user )

{

            // 使用对象语法访问数据

            echo $user->name;

            echo $user->email;

}

 

----------------------------------------------------

例 2

----------------------------------------------------

 

// 从数据库获取一行并显示在页面上..

$user = $db->get_row("SELECT name,email FROM users WHERE id = 2");

 

echo $user->name;

echo $user->email;

 

 

----------------------------------------------------

例 3

----------------------------------------------------

 

// 从数据库中得到一个变量并打印出来..

$var = $db->get_var("SELECT count(*) FROM users");

 

echo $var;

 

 

----------------------------------------------------

例 4

----------------------------------------------------

 

// 增:插入一条记录到数据库

$db->query("INSERT INTO users (id, name, email) VALUES (NULL,'justin','jv@foo.com')");

 

 

----------------------------------------------------

例 5

----------------------------------------------------

 

// 改:修改数据库中某条记录

$db->query("UPDATE users SET name = 'Justin' WHERE id = 2)");

 

 

----------------------------------------------------

例 6

----------------------------------------------------

 

// 显示最后一次查询和所有相关的结果

$db->debug();

 

 

----------------------------------------------------

例 7

----------------------------------------------------

 

// 显示任意结果的结构和内容..或任意变量

$results = $db->get_results("SELECT name, email FROM users");

 

$db->vardump($results);

 

 

----------------------------------------------------

例 8

----------------------------------------------------

 

// 获取“一列”(基于列索引)并显示在页面上..

$names = $db->get_col("SELECT name,email FROM users",0)

 

foreach ( $names as $name )

{

            echo $name;

}

 

----------------------------------------------------

例 9

----------------------------------------------------

 

// 同上,但“效率更快”

foreach ( $db->get_col("SELECT name,email FROM users",0) as $name )

{

            echo $name;

}

 

----------------------------------------------------

例 10

----------------------------------------------------

 

// 绘制任意给定数据库的完整架构并在页面上显示出来..

 

$db->select("my_database");

 

foreach ( $db->get_col("SHOW TABLES",0) as $table_name )

{

 

            $db->debug();

            $db->get_results("DESC $table_name");

 

}

 

$db->debug();

 

 

 

 

 

 

序言

 

当你使用数据库时,大部分时间你都想做四种基本操作方法 .

 

方法1.      查询:执行查询,如插入或更新(没有结果)

方法2.      从数据库中获取单个变量

方法3.      从数据库中获取一行

方法4.      获取数据库的结果列表(即数组)

 

ezSQL 把这四个基本动作封装成四个非常好用的函数。

 

bool     $db->query(query)

var       $db->get_var(query)

mixed $db->get_row(query)

mixed $db->get_results(query)

 

ezSQL的这四个函数可为您节省约99.9%的时间。当然,也有一些其他非常有用的功能,请容我们慢慢道来。

 

重要提示: 如是您要使用 ezSQL 某个您自己写的内部函数, 您必须在代码首行写上 global $db; 全局声明。

 

 

 

 

介绍

 

To install ezSQL download, unzip and install the contents of ez_sql.zip into the same directory within your web server.

 

Put the following at the top of your script:

 

// Include ezSQL core

include_once "ez_sql_core.php";

 

// Include ezSQL database specific component (in this case mySQL)

include_once "ez_sql_mysql.php";

 

// Initialise database object and establish a connection

// at the same time - db_user / db_password / db_name / db_host

$db = new ezSQL_mysql('db_user','db_password','db_name','db_host');

 

 

Note: On most systems localhost will be fine for the dbhost value. If you are unsure about any of the above settings you should contact your provider or look through your providers documentation.

 

If you are running on a local machine and have just installed mySQL for the first time, you can probably leave the user name and password empty ( i.e.  = “”) until you set up a mySQL user account.

 

 

 

 

Running the ezSQL demo

 

Once you have installed ezSQL as described above you can see it in action by running ez_demo.php via your web browser. To do this simply go to..

 

http://yourserver.com/install_path/mysql/demo.php

 

If you are running your web server on your local machine this will be..

 

http://127.0.0.1/install_path/mysql/demo.php

 

What the demo does… is use ezSQL 函数 to map out the table structure of your database (i.e the database you specified at the top of ez_sql.php). You will be surprised how little code is required to do this when using ezSQL. I have included it here so you can get a quick feel for the compactness and speed of ezSQL.

 

<?php

 

// Include ezSQL core

include_once "ez_sql_core.php";

 

// Include ezSQL database specific component

include_once "ez_sql_mysql.php";

 

// Initialise database object and establish a connection

// at the same time - db_user / db_password / db_name / db_host

$db = new ezSQL_mysql('db_user','db_password','db_name','db_host');

 

            $my_tables = $db->get_results("SHOW TABLES",ARRAY_N);

            $db->debug();

           

            foreach ( $my_tables as $table )

            {

                        $db->get_results("DESC $table[0]");

                        $db->debug();

            }

           

?>

 

 

 

 

The ezSQL demo explained

 

<?php

This is the standard way to start php executing within your web page.

 

include_once “ez_sql.php”;

This is how you include ezSQL in your script. Normally you include it at the top of your script and from that point forward you have access to any ezSQL function.

 

            $my_tables = $db->get_results(“SHOW TABLES”,ARRAY_N);

get_results() is how you get ‘a list’ of things from the database using ezSQL. The list is returned as an array. In this case the std mySQL command  of ‘SHOW TABLES’ is called and the resulting list is stored in a  newly created array $my_tables.

 

When using $db->get_results(), if there are any results, they are always returned as multi-dimensional array. The first dimension is a numbered index. Each of the numbered indexes is either an object, associative array or numerical array containing all the values for ‘one row’.

 

For 例 using the switch ARRAY_A would produce an array that looked something like this.

 

            $users = $db->get_results(“SELECT id,name FROM users”,ARRAY_A);

 

$users[0] = array (“id” => “1”, “name” => “Amy”);

$users[1] = array (“id” => “2”, “name” => “Tyson”);

 

If you wanted a numerical array use the switch ARRAY_N.

 

            $users = $db->get_results(“SELECT id,name FROM users”,ARRAY_N);

 

$users[0] = array (0 => “1”, 1 => “Amy”);

$users[1] = array (0 => “2”, 1 => “Tyson”);

 

If you wanted an object (which is the default option) you don’t need a switch..

 

$users = $db->get_results(“SELECT id,name FROM users”);

 

$users[0]->id = “1”;

$users[0]->name = “Amy”;

$users[1]->id = “2”;

$users[1]->name = “Tyson”;

 

Results returned as an object make it very easy to work with database results using the numerous array functions that php offers. For 例, to loop through results returned as an object all one needs to do is..

 

$users = $db->get_results(“SELECT id,name FROM users”);

 

                                    foreach( $users as $user )

                                    {

                                                echo $user->id;

                                                echo $user->name;

                                    }

 

                        If you are 100% sure that there will be results you can skip a step and do this..

 

                                    foreach( $db->get_results(“SELECT id,name FROM users”) as $user )

                                    {

                                                echo $user->id;

                                                echo $user->name;

                                    }

 

                        If you don’t know whether there will be results or not you can do this..

 

If ( $users= $db->get_results(“SELECT id,name FROM users”) )

{

                                                foreach( $users as $user )

                                                {

                                                            echo $user->id;

                                                            echo $user->name;

            }

}

else

{

            echo “No results”;

}

 

$db->debug();

This function prints the most recently called sql query along with a well formatted table containing any results that the query generated (if any) and the column info.

 

foreach ( $my_tables as $table)

This is the standard way to easily loop through an array in php. In this case the array $my_tables was created with the ezSQL command $db->get_results(“SHOW TABLES”,ARRAY_N). Because of the ARRAY_N switch the results are returned as a numerical array.

 

The resulting array will look something like..

 

$my_tables[0] = array (0 => “users”);

$my_tables[1] = array (0 => “products”);

$my_tables[2] = array (0 => “guestbook”);

 

            {

The foreach is looping through each primary element of $my_tables[n] which are in turn numerical arrays, with the format like so..

 

            array(0 => “value”, 1 => “value”, etc.);

 

Thus, during the foreach loop of $my_tables we have access to the value of the first column like so:

 

            foreach ($my_tables as $table)

            {

                        echo $table[0];

            }

           

If we did the same thing using an associative array it might look like this..

 

            $users = $db->get_results(“SELECT id,name FROM users”,ARRAY_A);

 

            foreach ( $users as $user )

            {

                        echo $user[‘id’];

                        echo $user[‘name’];

            }

 

But if there were no results foreach might generate a warning. So a safer way to do the above is..

 

            if ( $users = $db->get_results(“SELECT id,name FROM users”,ARRAY_A))

            {

                        foreach ( $users as $user )

                        {

                                    echo $user[‘id’];

                                    echo $user[‘name’];

                        }

            }

            else

            {

                        echo “No Users”:

            }

 

This works because if no results are returned then get_results() returns false.

 

                        $db->get_results(“DESC $table[0]”);

This database query is nested within the foreach loop. Note that we are using the results of the previous call to make a new call. Traditionally you would have to be concerned about using different db_resource identifiers in a case like this but ezSQL takes care of that for you, making it very easy to nest database queries.

 

You may be wondering why I have used a numerical array output and not object or associative array. The reason is because in this case I do not know what the name of the first column will be. So I can make sure that I can always get its value by using numerical array output and targeting the first column by element [0].

 

FYI: The SQL command SHOW TABLES always names the first column a different value depending on the database being used. If the database was named users the column would be called Tables_in_users if the database was called customers the column would be called Tables_in_customers and so on.

 

 

                        $db->debug();

This function will always print the last query and its results (if any) to the browser. In this case it will be for the above query..

 

            $db->get_results(“DESC $table[0]”);

 

You may have noticed that the above get_results function is not assigning a value. (i.e. $var = val). This is because even if you do not assign the output value of any ezSQL function the query results are always stored and made ready for any ezSQL function to use. In this case $db->debug() is displaying the stored results. Then, by calling any ezSQL function using a null query you will be accessing the stored results from the last query. Here is a more detailed 例.           

 

Users Table..

amy, amy@foo.com

tyson, tyson@foo.com

 

            // Any ezSQL function will store query results..

            $users = $db->get_results(“SELECT name,email FROM users”);

 

            // This gets a variable from the above results (offset by $x = 1, $y = 1).

            echo $db->get_var(null,1,1);

 

            // Note: Because a null query is passed to get_var it uses results from the previous query.

                       

Output: tyson@foo.com        

 

            }

            This closes the foreach loop

 

?>

This stops php executing code

 

 

 

 

ezSQL 函数

 

$db->get_results -- get multiple row result set from the database (or previously cached results)

$db->get_row -- get one row from the database (or previously cached results)

$db->get_col -- get one column from query (or previously cached results) based on column offset

$db->get_var -- get one variable, from one row, from the database (or previously cached results)

$db->query -- send a query to the database (and if any results, cache them)

$db->debug -- print last sql query and returned results (if any)

$db->vardump -- print the contents and structure of any variable

$db->select -- select a new database to work with

$db->get_col_info -- get information about one or all columns such as column name or type

$db->hide_errors -- turn ezSQL error output to browser off

$db->show_errors -- turn ezSQL error output to browser on

$db->escape -- Format a string correctly to stop accidental mal formed queries under all PHP conditions

$db = new db -- Initiate new db object.

 

ezSQL variables

 

$db->num_rows – Number of rows that were returned (by the database) for the last query (if any)

$db->insert_id -- ID generated from the AUTO_INCRIMENT of the previous INSERT operation (if any)

$db->rows_affected -- Number of rows affected (in the database) by the last INSERT, UPDATE or DELETE (if any)

$db->num_queries -- Keeps track of exactly how many 'real' (not cached) queries were executed during the lifetime of the current script

$db->debug_all – If set to true (i.e. $db->debug_all = true;) Then it will print out ALL queries and ALL results of your script.

$db->cache_dir – Path to mySQL caching dir.

$db->cache_queries – Boolean flag (see mysql/disk_cache_example.php)

$db->cache_inserts – Boolean flag (see mysql/disk_cache_example.php)

$db->use_disk_cache – Boolean flag (see mysql/disk_cache_example.php)

$db->cache_timeout – Number in hours (see mysql/disk_cache_example.php)

 

 

 

 

$db = new db

 

$db = new db -- Initiate new db object. Connect to a database server. Select a database.

 

描述

 

$db = new db(string username, string password, string database name, string database host)

 

Does three things. (1) Initiates a new db object. (2) Connects to a database server. (3) Selects a database. You can also re-submit this command if you would like to initiate a second db object. This is interesting because you can run two concurrent database connections at the same time. You can even connect to two different servers at the same time if you want to.

 

Note: For the sake of efficiency it is recommended that you only run one instance of the db object and use $db->select to switch between different databases on the same server connection.

 

 

          // Initiate new database object..

$db2 = new db(”user_name”, ”user_password”, ”database_name”, “database_host”);

 

            // Perform some kind of query..

            $other_db_tables = $db2->get_results(“SHOW TABLES”);

 

            // You can still query the database you were already connected to..

            $existing_connection_tables = $db->get_results(“SHOW TABLES”);

 

            // Print the results from both of these queries..

            $db->debug();

            $db2->debug();

 

 

 

 

$db->select

 

$db->select -- select a new database to work with

 

描述

 

bool $db->select(string database name)

 

$db->select() selects a new database to work with using the current database connection as created with $db = new db.

 

 

            // Get a users name from the user’s database (as initiated with $db = new db)..

$user_name = $db->get_var(“SELECT name FROM users WHERE id = 22”) ;

 

          // Select the database stats..

$db->select(“stats”);

 

            // Get a users name from the user’s database..

$total_hours = $db->get_var(“SELECT sum(time_logged_in) FROM user_stats WHERE user = ‘$user_name’”) ;

 

          // Re-select the ‘users’ database to continue working as normal..

$db->select(“users”);

 

 

 

 

$db->query

 

$db->query -- send a query to the database (and if any results, cache them)

 

描述

 

bool $db->query(string query)

 

$db->query() sends a query to the currently selected database. It should be noted that you can send any type of query to the database using this command. If there are any results generated they will be stored and can be accessed by any ezSQL function as long as you use a null query. If there are results returned the function will return true if no results the return will be false

 

例 1

 

            // Insert a new user into the database..

$db->query(“INSERT INTO users (id,name) VALUES (1,’Amy’)”) ;

 

例 2

 

            // Update user into the database..

$db->query(“UPDATE users SET name = ‘Tyson’ WHERE id = 1”) ;

 

例 3

 

            // Query to get full user list..

$db->query(“SELECT name,email FROM users”) ;

 

            // Get the second row from the cached results by using a null query..

$user_details = $db->get_row(null, OBJECT,1);

 

            // Display the contents and structure of the variable $user_details..

$db->vardump($user_details);

 

 

 

 

$db->get_var

 

$db->get_var -- get one variable, from one row, from the database (or previously cached results)

 

描述

 

var $db->get_var(string query / null [,int column offset[, int row offset])

 

$db->get_var() gets one single variable from the database or previously cached results. This function is very useful for evaluating query results within logic statements such as if or switch. If the query generates more than one row the first row will always be used by default. If the query generates more than one column the leftmost column will always be used by default. Even so, the full results set will be available within the array $db->last_results should you wish to use them.

 

例 1

 

            // Get total number of users from the database..

$num_users = $db->get_var(“SELECT count(*) FROM users”) ;

 

例 2

 

            // Get a users email from the second row of results (note: col 1, row 1 [starts at 0])..

$user_email = $db->get_var(“SELECT name, email FROM users”,1,1) ;

 

            // Get the full second row from the cached results (row = 1 [starts at 0])..

$user = $db->get_row(null,OBJECT,1);

 

            // Both are the same value..

            echo $user_email;

            echo $user->email;

 

例 3

 

            // Find out how many users there are called Amy..

if ( $n = $db->get_var(“SELECT count(*) FROM users WHERE name = ‘Amy’”) )

{

            // If there are users then the if clause will evaluate to true. This is useful because

// we can extract a value from the DB and test it at the same time.

                        echo “There are $n users called Amy!”;

}

else

{

// If there are no users then the if will evaluate to false..

                        echo “There are no users called Amy.”;

}

 

例 4

 

          // Match a password from a submitted from a form with a password stored in the DB

if ( $pwd_from_form == $db->get_var(“SELECT pwd FROM users WHERE name = ‘$name_from_form’”) )

{

            // Once again we have extracted and evaluated a result at the same time..

                        echo “Congratulations you have logged in.”;

}

else

{

            // If has evaluated to false..

                        echo “Bad password or Bad user ID”;

}

 

 

 


$db->get_row

 

$db->get_row -- get one row from the database (or previously cached results)

 

描述

 

object $db->get_ row(string query / null [, OBJECT / ARRAY_A / ARRAY_N [, int row offset]])

 

$db->get_row() gets a single row from the database or cached results. If the query returns more than one row and no row offset is supplied the first row within the results set will be returned by default. Even so, the full results will be cached should you wish to use them with another ezSQL query.

 

例 1

 

            // Get a users name and email from the database and extract it into an object called user..

$user = $db->get_row(“SELECT name,email FROM users WHERE id = 22”) ;

 

            // Output the values..

            echo “$user->name has the email of $user->email”;

 

 

            Output:

                        Amy has the email of amy@foo.com

 

例 2

 

            // Get users name and date joined as associative array

// (Note: we must specify the row offset index in order to use the third argument)

            $user = $db->get_row(“SELECT name, UNIX_TIMESTAMP(my_date_joined) as date_joined FROM users WHERE id = 22”,ARRAY_A) ;

 

            // Note how the unix_timestamp command is used with as this will ensure that the resulting data will be easily

// accessible via the created object or associative array. In this case $user[‘date_joined’] (object would be $user->date_joined)

            echo $user[‘name’] . “ joined us on ” . date(“m/d/y”,$user[‘date_joined’]);

 

            Output:

                        Amy joined us on 05/02/01

 

例 3

 

            // Get second row of cached results.

            $user = $db->get_row(null,OBJECT,1) ;

 

            // Note: Row offset starts at 0

            echo “$user->name joined us on ” . date(“m/d/y”,$user->date_joined);

 

 

            Output:

                        Tyson joined us on 05/02/02

 

例 4

 

            // Get one row as a numerical array..

            $user = $db->get_row(“SELECT name,email,address FROM users WHERE id = 1”,ARRAY_N);

 

            // Output the results as a table..

            echo “<table>”;

 

            for ( $i=1; $i <= count($user); $i++ )

            {

                        echo “<tr><td>$i</td><td>$user[$I]</td></tr>”;

            }

 

            echo “</table>”;

 

 

            Output:

 

1                    amy

2                    amy@foo.com

3                    123 Foo Road

 

 

 

 

 

$db->get_results

 

$db->get_results – get multiple row result set from the database (or previously cached results)

 

描述

 

array $db->get_results(string query / null [, OBJECT / ARRAY_A / ARRAY_N ] )

 

$db->get_row() gets multiple rows of results from the database based on query and returns them as a multi dimensional array. Each element of the array contains one row of results and can be specified to be either an object, associative array or numerical array. If no results are found then the function returns false enabling you to use the function within logic statements such as if.

 

例 1 – Return results as objects (default)

 

Returning results as an object is the quickest way to get and display results. It is also useful that you are able to put $object->var syntax directly inside print statements without having to worry about causing php parsing errors.

 

          // Extract results into the array $users (and evaluate if there are any results at the same time)..

if ( $users = $db->get_results(“SELECT name, email FROM users”) )

{

            // Loop through the resulting array on the index $users[n]

                        foreach ( $users as $user )

                        {

                                    // Access data using column names as associative array keys

                                    echo “$user->name - $user->email<br>”;

                        }

}

else

{

            // If no users were found then if evaluates to false..

                        echo “No users found.”;

}

 

 

            Output:

            Amy - amy@hotmail.com     

            Tyson - tyson@hotmail.com

 

例 2 – Return results as associative array

 

Returning results as an associative array is useful if you would like dynamic access to column names. Here is an 例.

 

          // Extract results into the array $dogs (and evaluate if there are any results at the same time)..

if ( $dogs = $db->get_results(“SELECT breed, owner, name FROM dogs”, ARRAY_A) )

{

            // Loop through the resulting array on the index $dogs[n]

                        foreach ( $dogs as $dog_detail )

                        {

 

                        // Loop through the resulting array

                                    foreach ( $dogs_detail as $key => $val )

                                    {

                                                // Access and format data using $key and $val pairs..

                                                echo “<b>” . ucfirst($key) . “</b>: $val<br>”;

                                    }

 

                        // Do a P between dogs..

                                    echo “<p>”;

                        }

}

else

{

            // If no users were found then if evaluates to false..

                        echo “No dogs found.”;

}

 

 

            Output:

            Breed: Boxer

            Owner: Amy

            Name: Tyson

 

            Breed: Labrador

            Owner: Lee

            Name: Henry

 

            Breed: Dachshund

            Owner: Mary

            Name: Jasmine

 

 

例 3 – Return results as numerical array

 

            Returning results as a numerical array is useful if you are using completely dynamic queries with varying column

names but still need a way to get a handle on the results. Here is an 例 of this concept in use. Imagine that this

script was responding to a form with $type being submitted as either ‘fish’ or ‘dog’.

 

                        // Create an associative array for animal types..

                        $animal = array ( “fish” => “num_fins”, “dog” => “num_legs” );

 

                        // Create a dynamic query on the fly..

                        if ( $results = $db->(“SELECT $animal[$type] FROM $type”,ARRAY_N))

                        {

                                    foreach ( $results as $result )

                                    {

                                                echo “$result[0]<br>”;

                                    }

                        }

                        else

                        {

                                    echo “No $animal\s!”;

                        }

 

                                    Output:

                                                4

                                                4

                                                4

 

                        Note: The dynamic query would be look like one of the following...

 

·         SELECT num_fins FROM fish

·         SELECT num_legs FROM dogs

 

                        It would be easy to see which it was by using $db->debug(); after the dynamic query call.

 

 

 

 

 

$db->debug

 

$db->debug – print last sql query and returned results (if any)

 

描述

 

$db->debug(void)

 

$db->debug() prints last sql query and its results (if any)

 

 

例 1

 

If you need to know what your last query was and what the returned results are here is how you do it.

 

          // Extract results into the array $users..

$users = $db->get_results(“SELECT name, email FROM users”);

 

// See what just happened!

$db->debug();

 

 

 

 

$db->vardump

 

$db->vardump – print the contents and structure of any variable

 

描述

 

$db->vardump(void)

 

$db->vardump() prints the contents and structure of any variable. It does not matter what the structure is be it an object, associative array or numerical array.

 

例 1

 

If you need to know what value and structure any of your results variables are here is how you do it.

 

          // Extract results into the array $users..

$users = $db->get_results(“SELECT name, email FROM users”);

 

// View the contents and structure of $users

$db->vardump($users);

 

 

 

 

$db->get_col

 

$db->get_col – get one column from query (or previously cached results) based on column offset

 

描述

 

$db->get_col( string query / null [, int column offset] )

 

$db->get_col() extracts one column as one dimensional array based on a column offset. If no offset is supplied the offset will defualt to column 0. I.E the first column. If a null query is supplied the previous query results are used.

 

例 1

 

          // Extract list of products and print them out at the same time..

foreach ( $db->get_col(“SELECT product FROM product_list”) as $product)

{

            echo $product;

}

 

例 2 – Working with cached results

 

          // Extract results into the array $users..

$users = $db->get_results(“SELECT * FROM users”);

 

// Work out how many columns have been selected..

$last_col_num = $db->num_cols - 1;

 

// Print the last column of the query using cached results..

foreach ( $db->get_col(null, $last_col_num) as $last_col )

{

            echo $last_col;

}

 

         

 

 

 

$db->get_col_info

 

$db->get_col_info - get information about one or all columns such as column name or type

 

描述

 

$db->get_col_info(string info-type[, int column offset])

 

$db->get_col_info()returns meta information about one or all columns such as column name or type. If no information type is supplied then the default information type of name is used. If no column offset is supplied then a one dimensional array is returned with the information type for ‘all columns’. For access to the full meta information for all columns you can use the cached variable $db->col_info

 

Available Info-Types

 

mySQL

 

·         name - column name

·         table - name of the table the column belongs to

·         max_length - maximum length of the column

·         not_null - 1 if the column cannot be NULL

·         primary_key - 1 if the column is a primary key

·         unique_key - 1 if the column is a unique key

·         multiple_key - 1 if the column is a non-unique key

·         numeric - 1 if the column is numeric

·         blob - 1 if the column is a BLOB

·         type - the type of the column

·         unsigned - 1 if the column is unsigned

·         zerofill - 1 if the column is zero-filled

 

ibase

 

·         name - column name 

·         type - the type of the column

·         length - size of column

·         alias - undocumented

·         relation - undocumented

 

MS-SQL / Oracle / Postgress

 

·         name - column name 

·         type - the type of the column

·         length - size of column

 

SQLite

 

·         name - column name 

 

例 1

 

          // Extract results into the array $users..

$users = $db->get_results(“SELECT id, name, email FROM users”);

 

// Output the name for each column type

foreach ( $db->get_col_info(“name”)  as $name )

{

            echo “$name<br>”;

}

 

            Output:

                        id

                        name

                        email

 

 

例 2

 

          // Extract results into the array $users..

$users = $db->get_results(“SELECT id, name, email FROM users”);

 

          // View all meta information for all columns..

          $db->vardump($db->col_info);

 

 

 

 

$db->hide_errors

 

$db->hide_errors – turn ezSQL error output to browser off

 

描述

 

$db->hide_errors( void )

 

$db->hide_errors() stops error output from being printed to the web client. If you would like to stop error output but still be able to trap errors for debugging or for your own error output function you can make use of the global error array $EZSQL_ERROR.

 

Note: If there were no errors then the global error array $EZSQL_ERROR will evaluate to false. If there were one or more errors then it will have  the following structure. Errors are added to the array in order of being called.

 

$EZSQL_ERROR[0] = Array

(

                [query] => SOME BAD QUERY

                [error_str] => You have an error in your SQL syntax near ‘SOME BAD QUERY' at line 1

)

 

$EZSQL_ERROR[1] = Array

(

                [query] => ANOTHER BAD QUERY

                [error_str] => You have an error in your SQL syntax near ‘ANOTHER BAD QUERY' at line 1

)

 

$EZSQL_ERROR[2] = Array

(

                [query] => THIRD BAD QUERY

                [error_str] => You have an error in your SQL syntax near ‘THIRD BAD QUERY' at line 1

)

 

例 1

 

          // Using a custom error function

$db->hide_errors();

 

// Make a silly query that will produce an error

$db->query(“INSERT INTO my_table A BAD QUERY THAT GENERATES AN ERROR”);

 

// And another one, for good measure

$db->query(“ANOTHER BAD QUERY THAT GENERATES AN ERROR”);

 

// If the global error array exists at all then we know there was 1 or more ezSQL errors..

if ( $EZSQL_ERROR )

{

            // View the errors

            $db->vardump($EZSQL_ERROR);

}

else

{

            echo “No Errors”;

}

 

 

 

 

$db->show_errors

 

$db->show_errors – turn ezSQL error output to browser on

 

描述

 

$db->show_errors( void )

 

$db->show_errors() turns ezSQL error output to the browser on. If you have not used the function $db->hide_errors this function (show_errors) will have no effect.

 

 

 

 

$db->escape

 

$db->escape – Format a string correctly in order to stop accidental mal formed queries under all PHP conditions.

 

描述

 

$db->escape( string )

 

$db->escape() makes any string safe to use as a value in a query under all PHP conditions. I.E. if magic quotes are turned on or off. Note: Should not be used by itself to guard against SQL injection attacks. The purpose of this function is to stop accidental mal formed queries.

 

例 1

 

            // Escape and assign the value..

            $title = $db->escape(“Justin’s and Amy’s Home Page”);

 

            // Insert in to the DB..

$db->query(“INSERT INTO pages (title) VALUES (’$title’)”) ;

 

例 2

 

            // Assign the value..

            $title = “Justin’s and Amy’s Home Page”;

 

            // Insert in to the DB and escape at the same time..

$db->query(“INSERT INTO pages (title) VALUES (’”. $db->escape($title).”’)”) ;

 

 

磁盘高速缓存

 

ezSQL 可将查询结果动态缓存以提升网站访问速度.

 

如果您想 EVERYTHING 照以下做法即可..

 

$db->use_disk_cache = true;

$db->cache_queries = true;

$db->cache_timeout = 24;

 

详情及完整代码请参阅示例:

 

·         mysql/disk_cache_example.php

·         oracle8_9/disk_cache_example.php