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. (源代码分析)Android-Universal-Image-Loader (图片异步载入缓存库)的使用配置

    转载请注明出处:http://blog.csdn.net/u011733020 前言: 在Android开发中,对于图片的载入能够说是个老生常谈的问题了,图片载入是一个比較坑的地方.处理不好,会有各种 ...

  2. MariaDB 数据库的备份

    1> 备份单个数据库 mysqldump -uroot -plichao123 --database students1 > stundents.sql; 2>查看备份文件 3> ...

  3. Python正則表達式小结(1)

    学习一段python正則表達式了, 对match.search.findall.finditer等函数作一小结  以下以一段网页为例,用python正則表達式作一个范例: strHtml = '''& ...

  4. 鸟哥的Linux私房菜-----1、Linux是什么与怎样学习Linux

  5. 1.Urllib2模块使用

    网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地. Urllib2介绍: urllib2 是 Python2.7 自带的模块(不需要下载,导入即可使用) urllib2 官方文 ...

  6. Wicket实战(一)概述

    今天给大家介绍一个很好的东西.一个被称作Java平台上的ASP.NET--Wicket. 什么是Wicket 什么是Wicket,假设你用谷歌或其它搜索引擎搜索一番之后,就会发现wicket是Java ...

  7. Oculus Rift DK2 驱动安装教程

    第一次安装oculus rift硬件驱动的教程: 1.   执行驱动的下载网址:https://developer.oculusvr.com/ 下载驱动首先须要拥有一个oculus的帐号.点击Regi ...

  8. ios29--多线程

    进程是指在系统中正在运行的一个应用程序(一个程序可以对应多个进程).每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内.比如同时打开迅雷.Xcode,系统就会分别启动2个进程.1个进程要 ...

  9. 服务器可用的Socket

    "; IPAddress ServerIp = IPAddress.Parse("112.124.46.251"); IPEndPoint iep = new IPEnd ...

  10. C#计算运行时间

    using System.Diagnostics; private Stopwatch stw = new Stopwatch(); stw.Start(); stw.Stop(); MessageB ...