PHP fSQL Tutorial
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的更多相关文章
- [翻译+山寨]Hangfire Highlighter Tutorial
前言 Hangfire是一个开源且商业免费使用的工具函数库.可以让你非常容易地在ASP.NET应用(也可以不在ASP.NET应用)中执行多种类型的后台任务,而无需自行定制开发和管理基于Windows ...
- Django 1.7 Tutorial 学习笔记
官方教程在这里 : Here 写在前面的废话:)) 以前学习新东西,第一想到的是找本入门教程,按照书上做一遍.现在看了各种网上的入门教程后,我觉得还是看官方Tutorial靠谱.书的弊端一说一大推 本 ...
- thrift 服务端linux C ++ 与客户端 windows python 环境配置(thrift 自带tutorial为例)
关于Thrift文档化的确是做的不好.摸索了很久才终于把跨linux与windows跨C++与python语言的配置成功完成.以下是步骤: 1) Linux下环境配置 ...
- Hive Tutorial(上)(Hive 入门指导)
用户指导 Hive 指导 Hive指导 概念 Hive是什么 Hive不是什么 获得和开始 数据单元 类型系统 内置操作符和方法 语言性能 用法和例子(在<下>里面) 概念 Hive是什么 ...
- 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 ...
- Using FreeMarker templates (FTL)- Tutorial
Lars Vogel, (c) 2012, 2016 vogella GmbHVersion 1.4,06.10.2016 Table of Contents 1. Introduction to F ...
- 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 ...
- Tutorial - Deferred Rendering Shadow Mapping 转
http://www.codinglabs.net/tutorial_opengl_deferred_rendering_shadow_mapping.aspx Tutorial - Deferred ...
- anguar.js tutorial demo
http://docs.angularjs.cn/tutorial angular 入门demo : PhoneCat Tutorial App 别人的DEMO(官方版):http://angular ...
随机推荐
- leetcode02-Add Two Numbers之beats98.68%Java版本号
我的leetcode之旅,该篇章主要完毕使用Java实现算法. 这是第二篇Add Two Numbers 所有代码下载: Github链接:github链接,点击惊喜; 写文章不易.欢迎大家採我的文章 ...
- [swift实战入门]手把手教你编写2048(一)
苹果设备越来越普及,拿着个手机就想捣鼓点啥,于是乎就有了这个系列,会一步一步教大家学习swift编程,学会自己做一个自己的app,github地址:https://github.com/scarlet ...
- 【面试加分项】java自己定义注解之解析注解
我之前的博客中说明过自己定义注解的声明今天我们来看看怎样对我们自己定义的注解进行使用. 1.我们在程序中使用我们的注解. 上一篇中我们自己定义了一个注解: @Target(ElementType.FI ...
- 【智能家居篇】wifi网络结构(下)
转载请注明出处:http://blog.csdn.net/Righthek 谢谢. 因为WIFI网络具有移动性,同一时候WIFI以无线电波作为传输媒介,这样的媒介本质上是开放的,且easy被拦截,不论 ...
- MongDB应用
题外话 工作3年,了解的技术颇多,但都是一知半解,了解不是很透澈.用过的技术,就像猴子搬过的包谷,搬一个丢一个.几年风雨,真有点一缕清风过,片叶不沾身的味道. 为强化知识点,提升文档及学习能力,我把以 ...
- BZOJ 1055 区间DP
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1144 Solved: 668[Submit][Statu ...
- jdk、jre、spring、java ee、java se
1 java se.java ee和java me 这三个是java的标准.java se是根本,java ee建立在java se上,用于server.java me是java se的子集,用于终端 ...
- linux 点命令
cat a date . a Mon Jun :: CST linux .(点命令):读取并且在当前的shell中执行文件中的命令
- 远程查看日志-linux
ssh 连接服务器 ssh user@www.xxx.com -p60022 用户名@ip 端口 进入日志所在目录 cat FILENAME 查看文本文件,P.S. 在查较大文件时为了避免刷屏,请使用 ...
- 怎样处理Gradle中的这个文件下载慢的问题的
如图:在build.gradle中的dependencies中加上要依赖的包后,就点击sync gradle.然后就开始了下载.在此过程中我是FQ了的(在此同时我是可以用chrome进入https:/ ...