PHP执行SQL查询怎么做

PHP执行SQL查询怎么做,第1张

$haha = M(),$res = $haha->query($sql)。

或 $res = $waw->execute($sql)。

$sql中包含了表名,实例化模型时可以为空。注意query是查功能,execute是增删改功能。

结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统。

可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

1986年10月,美国国家标准协会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3 135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。

所以,实际上不同数据库系统之间的SQL不能完全相互通用。

PHP程序pdf格式文件函数库

本函数库共有65个函数

PDF是Adobe所发展的可携式文件格式,它的文件可以在网络上传输、浏览,甚至使用印表机印出,或使用其它输出装置输出,都可以保存原来的文字及的编排。详细的信息可以参考 Adobe 的网站。参考其中有关 PDF 或 Acrobat 的部份。

在 UNIX 系统中,可以使用 Thomas Merz 开发的 PDF 函数库。将它编译安装完成后,再编译 PHP 程序方可供 PHP 使用 pdflib。编译时可能要 JPEG library 及 TIFF library。

除了用这个函数库可以建立 PDF 文件外,FastIO 公司发展的产品 ClibPDF 也可以处理 PDF 文件。

以下为处理 PDF 文件的范例,本例对 testpdf 加工后等待用户读取。

<php

$fp = fopen("testpdf", "w");

$pdf = PDF_open($fp);

pdf_set_info_author($pdf, "Uwe Steinmann");

PDF_set_info_title($pdf, "Test for PHP wrapper of PDFlib 20");

PDF_set_info_author($pdf, "Name of Author");

pdf_set_info_creator($pdf, "See Author");

pdf_set_info_subject($pdf, "Testing");

PDF_begin_page($pdf, 595, 842);

PDF_add_outline($pdf, "Page 1");

pdf_set_font($pdf, "Times-Roman", 30, 4);

pdf_set_text_rendering($pdf, 1);

PDF_show_xy($pdf, "Times Roman outlined", 50, 750);

pdf_moveto($pdf, 50, 740);

pdf_lineto($pdf, 330, 740);

pdf_stroke($pdf);

PDF_end_page($pdf);

PDF_close($pdf);

fclose($fp);

echo "<A HREF=getpdfphp3>finished</A>";

>

上例中的 gettestphp3 可能像下面的样子

<php

$fp = fopen("testpdf", "r");

header("Content-type: application/pdf");

fpassthru($fp);

fclose($fp);

>

PDF_get_info: 返回文件信息。

PDF_set_info_creator: 配置建档者字符串。

PDF_set_info_title: 配置文件标题。

PDF_set_info_subject: 配置文件主题。

PDF_set_info_keywords: 配置文件的关键字。

PDF_set_info_author: 配置文件作者。

PDF_open: 建立新的 PDF 档。

PDF_close: 关闭 PDF 档。

PDF_begin_page: 启始 PDF 文件页面。

PDF_end_page: 关闭 PDF 文件页面。

PDF_show: 输出字符串到 PDF 文件。

PDF_show_xy: 输出字符串到指定坐标。

PDF_set_font: 配置使用的字型及大小。

PDF_set_leading: 配置行距。

PDF_set_text_rendering: 配置文字表现方式。

PDF_set_horiz_scaling: 配置文字水平间距。

PDF_set_text_rise: 配置文字高度。

PDF_set_text_matrix: 配置文字矩阵。

PDF_set_text_pos: 配置文字位置。

PDF_set_char_spacing: 配置字符间距。

PDF_set_word_spacing: 配置字间距。

PDF_continue_text: 输出文字。

PDF_stringwidth: 计算字符串的宽度。

PDF_save: 储存环境变量。

PDF_restore: 还原环境变量。

PDF_translate: 移动原点。

PDF_scale: 缩放类。

PDF_rotate: 旋转类。

PDF_setflat: 配置平滑值。

PDF_setlinejoin: 配置连接参数。

PDF_setlinecap: 配置 linecap 参数。

PDF_setmiterlimit: 配置斜边界限。

PDF_setlinewidth: 配置线宽。

PDF_setdash: 配置虚线样式。

PDF_moveto: 配置处理的坐标点。

PDF_curveto: 绘贝氏曲线。

PDF_lineto: 绘直线。

PDF_circle: 绘圆。

PDF_arc: 绘弧。

PDF_rect: 绘长方形。

PDF_closepath: 形成封闭的向量形状。

PDF_stroke: 沿向量绘线。

PDF_closepath_stroke: 形成封闭的向量形状并沿向量绘线。

PDF_fill: 填满目前的向量。

PDF_fill_stroke: 填满目前的向量并沿向量绘线。

PDF_closepath_fill_stroke: 形成封闭的向量形状沿向量绘线并填满。

PDF_endpath: 关闭目前向量。

PDF_clip: 组合所有向量。

PDF_setgray_fill: 指定填入的颜色为灰阶。

PDF_setgray_stroke: 指定绘图的颜色为灰阶。

PDF_setgray: 指定绘图的颜色为灰阶并填入。

PDF_setrgbcolor_fill: 指定填入的颜色为彩色。

PDF_setrgbcolor_stroke: 指定绘图的颜色为彩色。

PDF_setrgbcolor: 指定绘图的颜色为彩色并填入。

PDF_add_outline: 目前页面加入书签。

PDF_set_transition: 配置页的转换。

PDF_set_duration: 配置二页的切换时间。

PDF_open_gif: 打开 GIF 图档。

PDF_open_memory_image: 打开内存图档。

PDF_open_jpeg: 打开 JPEG 图档。

PDF_close_image: 关闭图档。

PDF_place_image: 放置到 PDF 档指定位置。

PDF_put_image: 放置到 PDF 档。

PDF_execute_image: 放置 PDF 档中到指定位置。

PDF_add_annotation: 加入注释。

$haha = M(),$res = $haha->query($sql)。

或 $res = $waw->execute($sql)。

$sql中包含了表名,实例化模型时可以为空。注意query是查功能,execute是增删改功能。

结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统。

可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

1986年10月,美国国家标准协会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3 135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。

所以,实际上不同数据库系统之间的SQL不能完全相互通用。

要构建的无限分类的模型 电子产品是最大的分类家用电器 ,数码产品是其子分类可以看到子分类是被父分类包含起来的每个分类都有左右 两个节点编号分别是1、2、3

根据上面的图mysql中建立表和插入数据

CREATE TABLE  `product_categories` (

`id` MEDIUMINT( 8 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,`name` VARCHAR( 20 ) NOT NULL ,

`left_node` MEDIUMINT( 8 ) NOT NULL ,

`right_node` MEDIUMINT( 8 ) NOT NULL

) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;INSERT INTO `product_categories` (`id`, `name`, `left_node`, `right_node`) VALUES(1, '电子产品', 1, 20),

(2, '家用电器', 2, 9),

(3, '电视机', 3, 4),

(4, '电冰箱', 5, 6),

(5, '空调', 7, 8),

(6, '数码产品', 10, 19),

(7, '电脑', 11, 18),

(8, '台式电脑', 12, 13),

(9, '笔记本电脑', 14, 15),

(10, '平板电脑', 16, 17);

表结构如下:

下面是PHP的实例代码:

1、获取所有节点

<php

$pdo = new PDO(

'mysql:host=localhost;dbname=test',

'root',

''

);

$pdo->exec("SET NAMES UTF8");

$stmt = $pdo->prepare("SELECT cname FROM product_categories as c, product_categories as pWHERE cleft_node BETWEEN pleft_node AND pright_nodeAND pname='电子产品' ORDER BY cleft_node");$stmt->execute();

$rs=$stmt->fetchAll(PDO::FETCH_ASSOC);

foreach($rs as $v){

echo $v['name']'<br />';

}

输出:

电子产品

家用电器

电视机

电冰箱

空调

数码产品

电脑

台式电脑

笔记本电脑

平板电脑

2、 获取某个父节点以及其所有子节点

<php

$pdo = new PDO(

'mysql:host=localhost;dbname=test',

'root',

''

);

$pdo->exec("SET NAMES UTF8");

$stmt = $pdo->prepare("SELECT cname FROM product_categories as c, product_categories as pWHERE cleft_node BETWEEN pleft_node AND pright_nodeAND pname='数码产品' ORDER BY cleft_node");$stmt->execute();

$rs=$stmt->fetchAll(PDO::FETCH_ASSOC);

foreach($rs as $v){

echo $v['name']'<br />';

}

输出:

数码产品

电脑

台式电脑

笔记本电脑

平板电脑

3、获取所有的叶子节点

<php

$pdo = new PDO(

'mysql:host=localhost;dbname=test',

'root',

''

);

$pdo->exec("SET NAMES UTF8");

$stmt = $pdo->prepare("SELECT name FROM product_categories where right_node-left_node=1");$stmt->execute();

$rs=$stmt->fetchAll(PDO::FETCH_ASSOC);

foreach($rs as $v){

echo $v['name']'<br />';

}

输出:

电视机

电冰箱

空调

台式电脑

笔记本电脑

平板电脑

4、获取某个子节点及其所有父节点

<php

$pdo = new PDO(

'mysql:host=localhost;dbname=test',

'root',

''

);

$pdo->exec("SET NAMES UTF8");

$stmt = $pdo->prepare("SELECT pname FROM product_categories AS c, product_categories AS p WHERE cleft_node BETWEEN pleft_node AND pright_node AND cname = '平板电脑' ORDER BY pleft_node");$stmt->execute();

$rs=$stmt->fetchAll(PDO::FETCH_ASSOC);

foreach($rs as $v){

echo $v['name']'<br />';

}

输出:

电子产品

数码产品

电脑

平板电脑

5、获取所有节点极其所处的层级

<php

$pdo = new PDO(

'mysql:host=localhost;dbname=test',

'root',

''

);

$pdo->exec("SET NAMES UTF8");

$stmt = $pdo->prepare("SELECT cname, (COUNT(pname) - 1) AS level FROM product_categories AS c, product_categories AS p WHERE cleft_node BETWEEN pleft_node AND pright_node GROUP BY cname ORDER BY cleft_node");$stmt->execute();

$rs=$stmt->fetchAll(PDO::FETCH_ASSOC);

var_dump($rs);

echo '<br />';

foreach($rs as $v){

echo $v['name']' level:'$v['level']'<br />';}

输出:

电子产品 level:0

家用电器 level:1

电视机 level:2

电冰箱 level:2

空调 level:2

数码产品 level:2

电脑 level:2

台式电脑 level:3

笔记本电脑 level:3

平板电脑 level:3

6、获取某个节点的层级

<php

$pdo = new PDO(

'mysql:host=localhost;dbname=test',

'root',

''

);

$pdo->exec("SET NAMES UTF8");

$stmt = $pdo->prepare("SELECT cname, (COUNT(pname) - 1) AS level FROM product_categories AS c, product_categories AS p WHERE cleft_node BETWEEN pleft_node AND pright_node and cname='平板电脑' GROUP BY cname ORDER BY cleft_node");$stmt->execute();

$rs=$stmt->fetchAll(PDO::FETCH_ASSOC);

var_dump($rs);

echo '<br />';

foreach($rs as $v){

echo $v['name']' level:'$v['level']'<br />';}

输出:

平板电脑 level:3

7、在某个节点后平行的插入一个节点

<php

$pdo = new PDO(

'mysql:host=localhost;dbname=test',

'root',

''

);

$pdo->exec("SET NAMES UTF8");

function addNode($left_node,$new_node){

global $pdo;

$stmt = $pdo->prepare("SELECT right_node FROM product_categories WHERE name = '$left_node'");$stmt->execute();

$rs=$stmt->fetch(PDO::FETCH_ASSOC);

$right_node=$rs['right_node'];

$pdo->exec("UPDATE product_categories SET right_node = right_node + 2 WHERE right_node > $right_node");$pdo->exec("UPDATE product_categories SET left_node = left_node + 2 WHERE left_node > $right_node");$pdo->exec("INSERT INTO product_categories(name, left_node, right_node) VALUES('$new_node', $right_node + 1, $right_node + 2)");}

addNode('家用电器','办公用品');

完成之后表结构如下:

8、删除某个节点及其所有子节点

<php

$pdo = new PDO(

'mysql:host=localhost;dbname=test',

'root',

''

);

$pdo->exec("SET NAMES UTF8");

function deleteNode($node_name){

global $pdo;

$stmt = $pdo->prepare("SELECT left_node,right_node, right_node - left_node + 1 as width FROM product_categories WHERE name ='$node_name'");$stmt->execute();

$rs=$stmt->fetch(PDO::FETCH_ASSOC);

$left_node=$rs['left_node'];

$right_node=$rs['right_node'];

$width=$rs['width'];

$pdo->exec("DELETE FROM product_categories WHERE left_node BETWEEN $left_node AND $right_node");$pdo->exec("UPDATE product_categories SET right_node = right_node - $width WHERE right_node > $right_node");$pdo->exec("UPDATE product_categories SET left_node = left_node - $width WHERE left_node > $right_node");}

deleteNode('数码产品');

完成之后表结构如下:

可以看到用多叉树的方式构建无限分类,查询的时候是非常简便的但是在插入新的节点和删除节点时就比较麻烦了

你好,$conn为pdo函数的实例化对象,第一句就是调用pdo函数的execute()方法,就是执行数据库查询语句的意思,类似mysql_query(),查询结果用$rst_find接受,为一个数组,第二句是获取数组的元素个数。

以下是用odbc连接数据库的例子:

<php

$db_connection = new COM("ADODBConnection");

$db_connstr = "DRIVER={Microsoft Access Driver (mdb)}; DBQ=C:\DataDir\Employeemdb;DefaultDir=C:\DataDir";

$db_connection->open($db_connstr);

$rs = $db_connection->execute("SELECT EmpNameLocal, EmpPosLocal FROM tbl_Employee WHERE ID='$IDNo'");

$rs_fld0 = $rs->Fields(0);

$rs_fld1 = $rs->Fields(1);

while (!$rs->EOF) {

$empNameLoc = $rs_fld0->value;

$empWPPos = $rs_fld1->value;

$rs->MoveNext();

}

$rs->Close();

$db_connection->Close();

>

以上就是关于PHP执行SQL查询怎么做全部的内容,包括:PHP执行SQL查询怎么做、如何从php程序读取pdf文档中的文本信息、PHP执行SQL查询等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9335818.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存