PHP fSQL Tutorial This tutorial is designed to give a brief overview of the PHP fSQL API since version 1.2. The syntax and function of the SQL queries understood by fSQL will be addressed in another tutorial.

I. The Basics Every script that wishes to load fSQL needs to only include one file, the fSQL.php located in the distribution. If fSQL.php is in the same directory as the script using it, this is all you need:

require_once("fSQL.php"); Once the file is included, there is only one class you need for all of your SQL needs: fSQLEnvironment. This contains information on the different databases in the program and their location on the file system. fSQLEnvironment is a simple API that is very similar to the PHP mysql API in almost every way. For example, fSQLEnvironment's fetch_assoc() is modeled directly after mysql_fetch_assoc() so if you're having trouble understanding fSQL's documentation, the PHP mysql API could also help you understand what each function does.

To create a new fSQLEnvironment class, it has a simple constructor with no parameters:

$fsql = new fSQLEnvironment; II. Defining Databases Databases in fSQL are directories in the file system with an associated name given to them. To define one:

$fsql->define_db("mydb", "/path/to/db"); The first parameter is the database name and the second is the path to that database. This tells the environment that the database to be called "mydb" will be located in the directory /path/to/db on the file system. In other words, all table information and data for "mydb" should be loaded from and stored to the directory /path/to/db. If the supplied path does not exist, fSQL will attempt to create it and set the appropriate permissions.

As of PHP fSQL v1.2, fSQL allows you have multiple databases defined for fSQL. For example, one could define several databases like so:

$fsql->define_db("db1", "/path/to/db1"); $fsql->define_db("db2", "/path/to/db2"); $fsql->define_db("db3", "/path/to/db3"); To select which database is to be the default when using queries and other function calls, use the select_db() function:

$fsql->select_db("db2"); This function is the equivalent to the "USE `db2`" query. You should always select a default database before using any other functions in fSQLEnvironment.

III. Data Definition and Manipulation From here on out, the most important method for dealing with the databases' data is the query() method. The query method takes one parameter and that is the string fSQL query to execute. The simplest form is data definition and manipulation performs just the query and returns either a true value on sucess or a false value on failure.

$fsql->query("CREATE TABLE example(    id INT NOT NULL AUTO_INCREMENT,    name VARCHAR(30),    age INT,    PRIMARY KEY(id) )") or die($fsql->error()); The other types of queries worth mentioning: data manipulation (like INSERT, UPDATE, etc). On these queries, the method affected_rows() returns the number of rows added or modified by the last data manipulation query. For example:

$fsql->query("DELETE FROM example WHERE id < 5")   or die("DELETE failed: ".$fsql->error()); echo "Deleted Rows: ".$fsql->affected_rows(); IV. Data Selection Executing data retrieval queries like SELECT are also performed using the query() method. Except on data retrieval queries, the query method returns a handle to a result set which can be iterated through row by row using the fetch methods. Below we see an example.

$results = $fsql->query("SELECT id, name FROM example WHERE age > 30")   or die("SELECT failed: ".$fsql->error()); while($row = $fsql->fetch_array($results)) {  echo $row['id']." ".$row['name']."\r\n"; } $fsql->free_result($results); fetch_array($results) returns the next row in the result set until the last row has passed and then it returns NULL to stop the loop.

There are several ways to iterate through a result set:

Return the row as an associative array using the names/aliases of the columns as the row's keys: $fsql->fetch_array($results) $fsql->fetch_array($results, FSQL_ASSOC) $fsql->fetch_assoc($results) Returns the row as a normal array with integer indexes: $fsql->fetch_row($results) $fsql->fetch_array($results, FSQL_NUM) Returns the row with both column name keys and integer keys: $fsql->fetch_both($results) $fsql->fetch_array($results, FSQL_BOTH) Returns the row as "class-less object" using the names/aliases of the columns as the object's member variables: $fsql->fetch_object($results) Other result set methods of interest:

num_rows($results) - Returns the number of rows in the result set num_fields($results) - Returns the number of columns in the result set data_seek($results, $n) - Sets the internal cursor of the result set so that the next fetch method returns the nth row of the result set. free_result($results) - Frees the result set and any memory it used

广告交易平台

PHP fSQL Tutorial的更多相关文章

  1. [翻译+山寨]Hangfire Highlighter Tutorial

    前言 Hangfire是一个开源且商业免费使用的工具函数库.可以让你非常容易地在ASP.NET应用(也可以不在ASP.NET应用)中执行多种类型的后台任务,而无需自行定制开发和管理基于Windows ...

  2. Django 1.7 Tutorial 学习笔记

    官方教程在这里 : Here 写在前面的废话:)) 以前学习新东西,第一想到的是找本入门教程,按照书上做一遍.现在看了各种网上的入门教程后,我觉得还是看官方Tutorial靠谱.书的弊端一说一大推 本 ...

  3. thrift 服务端linux C ++ 与客户端 windows python 环境配置(thrift 自带tutorial为例)

    关于Thrift文档化的确是做的不好.摸索了很久才终于把跨linux与windows跨C++与python语言的配置成功完成.以下是步骤: 1)                 Linux下环境配置 ...

  4. Hive Tutorial(上)(Hive 入门指导)

    用户指导 Hive 指导 Hive指导 概念 Hive是什么 Hive不是什么 获得和开始 数据单元 类型系统 内置操作符和方法 语言性能 用法和例子(在<下>里面) 概念 Hive是什么 ...

  5. Home / Python MySQL Tutorial / Calling MySQL Stored Procedures in Python Calling MySQL Stored Procedures in Python

    f you are not familiar with MySQL stored procedures or want to review it as a refresher, you can fol ...

  6. Using FreeMarker templates (FTL)- Tutorial

    Lars Vogel, (c) 2012, 2016 vogella GmbHVersion 1.4,06.10.2016 Table of Contents 1. Introduction to F ...

  7. Oracle Forms 10g Tutorial Ebook Download - Oracle Forms Blog

    A step by step tutorial for Oracle Forms 10g development. This guide is helpful for freshers in Orac ...

  8. Tutorial - Deferred Rendering Shadow Mapping 转

    http://www.codinglabs.net/tutorial_opengl_deferred_rendering_shadow_mapping.aspx Tutorial - Deferred ...

  9. anguar.js tutorial demo

    http://docs.angularjs.cn/tutorial angular 入门demo : PhoneCat Tutorial App 别人的DEMO(官方版):http://angular ...

随机推荐

  1. 【转】C++ 进程间的通讯(一):简单的有名管道实现

    原文: C++ 进程间的通讯(一):简单的有名管道实现 -------------------------------------------------- 进程间的通讯(一):简单的有名管道实现   ...

  2. ubuntu下vi的使用

    ubuntu下vi的使用 ssh之后对于server的文件,我习惯用gedit,可是不好改动,于是就用vi. 1.vi的基本概念 基本上vi能够分为三种状态,各自是命令模式(command mode) ...

  3. Java算法-奇怪的分式

    题目: 上小学的时候,小明常常自己发明新算法.一次,老师出的题目是: 1/4 乘以 8/5 小明竟然把分子拼接在一起,分母拼接在一起,答案是:18/45 老师刚想批评他.转念一想.这个答案凑巧也对啊, ...

  4. HDU 5324 Boring Class【cdq分治】

    这就是一个三维排序的问题,一维递减,两维递增,这样的问题用裸的CDQ分治恰好能够解决. 如同HDU 4742(三维排序,一个三维都是递增的) 由于最小字典序比較麻烦,所以要从后面往前面做分治.每一个点 ...

  5. 2015ACM/ICPC Asia Regional Changchun Online /HDU 5438 图

    Ponds                                   Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 1310 ...

  6. HDU 5763Another Meaning

    Another Meaning Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  7. 【OI新闻】2016.10.09

    号外: [头条]今天OI神犇光勋和原子城po ke,Happy Birthday!

  8. ZOJ3962 2017 E.Seven Segment Display

    数码管从某个状态顺序转移N个状态 计算总共有多少个数码管被点亮 N<=10^9 观察数码管的变化规律,有明显的周期和重复,利用这个性质,计算相对于初始状态,某一位上的某个状态重复了多少次,就可以 ...

  9. POJ1264 SCUD Busters 凸包

    POJ1264 有m个国家(m<=20)对每个国家给定n个城镇 这个国家的围墙是保证围住n个城镇的周长最短的多边形 必然是凸包 进行若干次导弹发射 落到一个国家内则国家被破坏 最后回答总共有多少 ...

  10. SVN工具使用技巧

    SVN打tag SVN打tag是一个很常用的功能,要谈打tag,还得从SVN官方推荐的目录结构说起.SVN官方推荐在一个版本库的根目录下先建立trunk.branches.tags这三个文件夹,其中t ...