导航:首页 > 编程语言 > php5432

php5432

发布时间:2022-11-30 13:41:31

A. php连接postgresql的问题

MAP IMAGETYPE PNG EXTENT 139.602 35.413 139.678 35.489 SIZE 300 300 IMAGECOLOR 255 255 255 SHAPEPATH "../data" FONTSET "../fonts/fonts.list" WEB IMAGEPATH "../tmp/" IMAGEURL "/public/pgRouting/tmp/" END PROJECTION "init=epsg:4612" # JGD2000 END UNITS DD SYMBOL NAME "hatch" TYPE hatch END LAYER NAME "roads" DATA kanagawa STATUS DEFAULT TYPE LINE CLASS COLOR 195 195 195 END END LAYER NAME "place_names" DATA chimei STATUS DEFAULT TYPE ANNOTATION LABELITEM "NAMAE" CLASS COLOR 20 20 20 LABEL TYPE TRUETYPE FONT gothic ENCODING SJIS COLOR 220 3 3 SHADOWCOLOR 210 210 5 SIZE 8 POSITION CC PARTIALS TRUE BUFFER 7

B. php和js下拉菜单联动

var selected_state=state_list.options[state_list.selectedIndex].value;

C. 如何在CentOS 7/6.5/6.4 下安装PostgreSQL 9.3 与 phpPgAdmin

PostgreSQL是一个强大开源的对象关系类型数据库系统,它能运行于几乎所有主要的操作系统,包括linux、Unix(AIX、BSD、HP-UX、SGIIRIX、MacOS、Solaris、Tru64)、WindowsOS。在这篇教程里,我们将学习如何在CentOS7/6.5/6.4server中建立PostgreSQL。1.安装PostgreSQL首先根据你的服务器架构添加PostgreSQL库:对CentOS6.x32bit:rpm-Uvhtcpfirewall-cmd--reload3.访问PostgreSQL常用的命令提示符默认情况下数据库名和用户名都是postgres。切换至用户以执行相关操作:su–postgres输入以下命令登陆:psql会有以下样例输出:psql(9.3.5)Type"help"forhelp.Postgres=#可通过输入\q退出postgresql返回命令终端:4.设置用户密码登陆至postgres命令提示符界面su–postgrespsql然后使用命令设置密码postgres=#\:Enteritagain:postgres=#\q输入命令以建立PostgreSQL系统管理工具postgres=#CREATEEXTENSIONadminpack;CREATEEXTENSION5.创建用户和数据库例如:用户名:senthil密码:centos数据库名:mydb转到postgres用户su–postgres创建用户senthil$createusersenthil创建数据库$createdbmydb现在登陆至psql提示符界面,为用户senthil设置密码及授权对数据库mydb的访问:$psqlpsql(9.3.5)Type"help"forhelp.postgres=#'centos';ALTERROLEpostgres=#;GRANTpostgres=#6.删除用户和数据库首先转到postgres界面su–postgres输入命令$dropdb删除用户名可输入$dropuser7.配置PostgreSQL-MD5认证MD5认证需要客户端提供一个MD5-encrypted密码以便身份验证。你需要编辑/var/lib/pgsql/9.3/data/pg_hba.conf文件:vi/var/lib/pgsql/9.3/data/pg_hba.conf添加或修改的行如下:[]#TYPEDATABASEUSERADDRESSMETHOD#"local"#IPv4localconnections:hostallall127.0.0.1/32md5hostallall192.168.1.0/24md5#IPv6localconnections:hostallall::1/128md5[]重启postgresql服务以应用更改在CentOS6.x系统中servicepostgresql-9.3restart在CentOS7系统中systemctlrestartpostgresql-9.38.配置PostgreSQL-ConfigureTCP/IP默认情况下,TCP/IP连接是不可行的,所以其他计算机用户不能连接到postgresql。编辑文件/var/lib/pgsql/9.3/data/postgresql.conf可以允许连接:vi/var/lib/pgsql/9.3/data/postgresql.conf找到下面的行:[]#listen_addresses='localhost’[]#port=5432[]把两行都取消并设置为你的postgresql服务器IP地址或设置为“*”监听所有客户端。如下所示:listen_addresses='*'port=5432重启以应用更改在CentOS6.x系统中:/etc/init.d/postgresql-9.3restart在CentOS7系统中:systemctlrestartpostgresql-9.39.使用phpPgAdmin管理PostgreSQLphpPgAdmin是使用PHP编写的基于web的管理工具,用于管理PostgreSQL。它只适用与PostgreSQLRPM库。如果你没有添加PostgreSQL库,你可以添加EPEL库。可根据下面的链接在CentOS6.x中建立EPEL库

D. php pdo 链接各个数据库的dsn分别是什么

sql server:
sqlsrv:Server=localhost;Database=testdb

db2:
odbc:SAMPLE

Informix:
informix:host=host.domain.com; service=9800; database=common_db; server=ids_server; protocol=onsoctcp; EnableScrollableCursors=1

Sybase:
dblib:host=$hostname:$port;dbname=$dbname

PostgreSQL:
pgsql:host=localhost;port=5432;dbname=testdb;user=bruce;password=mypass

Access:
DB_DSN'=>"odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" . getcwd(). "\\Database\\db.mdb

ps: 是这样的,先去搜索目前都有哪些数据库,然后再搜索 php pdo 数据库名 dsn 即可。

E. php连接postgray数据库怎么实现

php.ini中将extension=php_pgsql.dll前面的分号去掉,然后设置extension_dir指向php文件下的ext文件夹
或者直接把将./php/libpq.dll(php文件夹下的libpq.dll)和./php/ext/php_pgsql.dll(ext文件夹下的php_pgsql.dll)这两个dll文件复制到C盘system32下。
正常情况下这样php就可以连接postgres了,但是我的仍然出错,提示“Fatal error: Call to undefined function pg_connect()”,查看Apache的日志,“PHP Startup: Unable to load dynamic library '****\\PHP5\\ext\\php_pdo_pgsql.dll”。
经过查找,在Apache中conf文件夹下的配置文件httpd.conf中添加 LoadFile "***/PHP5/libpq.dll",位置在LoadMole后面即可。
(***为php安装路径)

测试代码:

<?php
$conn_string = "host=localhost port=5432 dbname=db_name user=your user password=your password" ;
$dbconn = pg_connect($conn_string);
if (!$dbconn)
echo "连接失败!!!!!/r/n";
else
echo "连接成功!!!!!/r/n";
pg_close($dbconn);
?>

user一般为安装期间新建的用户postgres

F. securecrt6.1如何使用

SecureCRT设置教程
SecureCRT是最常用到的终端仿真程序,很多人都喜欢用进行一些配置和实验,在这里我只针对一些朋友常问到我的关于Cisco的Gns3与SecureCRT的配置进行讲解。我以Secure_CRT_6.2.3版为例进行介绍。
一、安装
安装相对来说比较简单,运行Secure_CRT_6.2.3,只要“下一步”即可,我们不去更改以默认安装就可以了。
二、注册
对于Secure_CRT_6.2.3现在册上有很多注册机,只要去下载一个就可以了。我这里用到的破解是器是crack.exe,把解压下来的crack.exe复制到安装文件夹下,并点击运行。然后在打开的界面里的“name”和“company”项输入自己想要设置的字符就行,这个可以随便自己写也就是我写Rob的地方,最后点点“generate”生成序列号等项目,最后点“Patch”即可进行自己动注册。【有些朋友反应说不可以进行自己动注册,那我在这里建议你,既然不能自动注册就不要太强求,我们把生成的项目全部复制下来,进行手动注册就行了】

三、基本的设置
界面介绍
1、菜单
1)File文件
Connect... 连接,打开一个连接或者编辑已有的连接,创建新连接。
Quick Connect... 快速连接,快速连接对话框,快速连接主机的最便捷方式。
Connect in Tab... 在Tab中打开一个新的会话窗口。
Clone Session 克隆当前会话窗口。
Connect SFTP Tab 打开SFTP窗口,对于SSH连接,此选项可用。在此会话窗口中可使用SFTP命令传输文件。
Reconnect 重新连接
Disconnect 中断当前会话窗口的连接
Log Session 把当前窗口的会话记录到log文件中。
Raw Log Session 将更详细的会话记录到log文件中,包括服务器更详细的响应信息。
Trace Options 在log文件中记录协议会话信息选项。(包括客户端与主机互相连接时的一些信息内容)
2)Edit编辑
拷贝粘贴等
3) View视图
显示各种工具条
4) Options选项
包括全局选项和Session选项
5) Transfer传递文件
使用Xmodem/Zmodem上传下载文件
6) Script.脚本
运行一个脚本文件,或记录一个新的脚本。(类似Word中的宏功能)
7) Tools工具
键盘映射编辑,密钥生成工具等
8) Help帮助
2、对话框和按钮
点击File => Connect可出现Connect对话框。
从左至右按钮依次为:
连接(激活选中的连接条目);快速连接(快捷连接新的主机);新建连接(在对话框中新增一个连接条目);剪切;复制;粘贴;删除(对话框中的条目);新建文件夹,属性(显示选中条目的属性),创建条目的桌面快捷方式,帮助。
1、退出关闭路由时自动退出Secure_CRT窗口
Options => Global ptions => General => Default Session =>Edit Default Settings... => Terminal中将Close on disconnect 选上,当用户从主机中退出后可以自动关闭当前连接的窗口。

2、拷贝与粘贴的设置
通过鼠标操作即可拷贝或粘贴所需内容是一个非常方便的设置Options => Global ptions => Terminal => Mouse选中Copy on select 和 Paste on middle button这样设置后,只要用鼠标选中所需内容,则将内容拷贝到剪切板中,点击鼠标中键即可粘贴内容。
另外可以设置使用Windows下的拷贝粘贴快捷键,Options => Global ptions => General => Default Session => Edit Default Settings... => Terminal => Mapped keys => Use windows and paste hotkeys

3、Tabs设置
从Secure5.0以后,增加了Tabs(标签)选项,多个连接可以在同一个窗口下打开,类似IE7.0的风格。Options => Globalptions=>Tabs =>Double-click选项修改为 Close Tab双击标签可关闭窗口。

4、修改默认卷屏行数
当你做一个操作,屏幕输出有上百行,当需要将屏幕回翻时,这个设置会有很大帮助,默认为500行,可以改为10000行,不用担心找不到了。Options => Global ptions => General => Default Session => Edit Default Settings... =>Terminal => Emulation => Scrollback 修改为10000。

5、修改Xmodem/Zmodem上传下载路径(可选)
SecureCRT可以使用Xmodem/Zmodem方便的上传和下载文件。 在Options => Global ptions => General => Default Session => Edit Default Settings... =>Terminal => =Xmodem/Zmodem = Directories中设置 。

六、修改窗口和字体颜色
通过对于SecureCRT的窗口和字体的修改使使用的人可自行选择自己喜欢的颜色,同时也方便同一类型的端口进行以不同的颜色分类,使使用都不会轻易的弄混,Options => session Options => Terminal=> Current color scheme
四、设置Secure_CRT_6.2.3终端命令端口
在GNS3里面托动几台路由器,开点开始启动
动行Secure_CRT_6.2.3,File=>Quick Connect按照下面进行设置,这里的Port端口不是随便设成2000的,而是根据路由器设成的(在GNS3里右击路由器 点修改Console端口你就可以看到端口号了,这里每台的路由器端口号都是不一样的)
点connect完成
这里GNS3里路由器要是没启动的话会有错误提示,所以要把路由器打开。

点击下图中Edit下面的图标,也就是从左数起第三个

这时你会发现Connect in Tab里面有一个127.0.0.1的项,这个就是对应GNS3里面端口是2000的路由器。
这时你右击 点Rename把他的名字改成你GNS3里面所对应的路由器名字
就如上图中3640 R0一样,这个就是3640型号编号为0的路由器。
如果想多设几台,你就继续托路由器到GNS3中,接着查看端口并按上面步骤进行设置。
设置完就像上面的我所列出的几个一样,他在你GNS3上都有相对应的路由器,以后做实验不用地GNS3上点击,只要看一下做实验所用的路由器编号,直接在Connect in Tab里面点击出来。
如下图

补充:
GNS3终端命令设置 (gns3与securecrt关联)
在对GNS3终端命令设置进行设置的时候,首先在在C:\WINDOWS\system32文件夹下新建一个Secure_CRT_6.2.3快捷方式。
然后右点我的电脑=> 高级=> 环境变量=> path=> 加上;C:\Program Files\VanDyke Software\SecureCRT 【注意C前面的分号】对于这一部我也不知道怎么说有的机子不用创建变量可以用有的机子则需要,现在还弄不明白原因,所以建议都加上这个变量吧,如果你Secure_CRT_6.2.3不是装在C盘,那变量你自己参考上面的进行更改。
打开GNS3首选项 在终端命令端口改成
start SecureCRT.exe /T /telnet %h %p(我是用这一个)
或【start SecureCRT.exe /T /telnet 127.0.0.1 %p】
【C:\Program Files\VanDyke Software\SecureCRT\SecureCRT.exe /t /telnet %h %p】

在GNS3中帮定Hypervisor管理到的项目里改成127.0.0.1
到这里GNS3方面就设置完了。

SecureCRT 常用命令
常用命令:
一、ls 只列出文件名 (相当于dir,dir也可以使用)
-A:列出所有文件,包含隐藏文件。
-l:列表形式,包含文件的绝大部分属性。
-R:递归显示。
--help:此命令的帮助。
二、cd 改变目录
cd /:进入根目录
cd :回到自己的目录(用户不同则目录也不同,root为/root,xxt为/home/xxt
cd ..:回到上级目录
pwd:显示当前所在的目录
三.less 文件名:查看文件内容。
四.q 退出打开的文件。
五.上传文件: rz 选择要传送的文件,确定。
六.下载文件: sz 指定文件名,enter敲,即下载到了secureCRT/download目录下。
七:删除文件: rm 删除文件 ,rmdir 删除空目录。

八.显示 最近输入的20条命令:history 20

九.获得帮助命令 --help查看命令下详细参数: 如:rz --help , sz --help 。
十.cd 进入某个文件夹的命令:
mkdir+文件夹名 创建某个文件夹的命令
sz+文件名 从服务器端向本机发送文件的命令
rz 从本机向服务器端传送文件的命令
ll 列出当前目录下的所有文件,包括每个文件的详细信息
dir 对当前文件夹
vi 打开当前文件
十一.在编辑某个文件的时候:
a 切换到编辑模式
ctrl+c 退出编辑模式
dd 删除整行
:q 退出当前文件
:w 写入并保存当前文件
-f 强行xx的参数。。。

其它命令:
1.ps -ef //查看server的进程,以列表形式显示的server进程。
ps 显示当前在系统运行的进程 /usr/bin/ps [选项] -e 显示每个现在运行的进程 -f 生成一个完全的列表
实际操作:
--------------------------------------
1 SSH客户端连接到10.5.1.55系统(参见《启动远程客户端说明SecureCRT.doc》)
$ cd /home/bea2/user_projects/csdomain/bin
2 查看weblogic92服务进程
$ ps -eaf | grep weblogic
bea2 327926 331940 0 13:08:45 pts/4 0:00 grep weblogic
webadmin 421908 368956 0 Sep 24 - 4:13 /usr/java5_64/bin/java -Xms256m -Xmx512m -da -Dplatform.home=/home/weblogic/bea/weblogic92 -Dwls.home=/home/weblogic/bea/weblogic92/server -Dwli.home=/home/weblogic/bea/weblogic92/integration -Dweblogic.management.discover=true -Dwlw.iterativeDev=false -Dwlw.testConsole=false -Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=/home/weblogic/bea/patch_weblogic923/profiles/default/sysext_manifest_classpath -Dweblogic.Name=AdminServer -Djava.security.policy=/home/weblogic/bea/weblogic92/server/lib/weblogic.policy weblogic.Server
bea2 491796 385044 17 00:12:50 pts/6 182:55 /usr/java5_64/bin/java -Xms6g -Xmx8g -javaagent:/home/bea2/user_projects/csdomain/Introscope/wily/Agent.jar -Dcom.wily.introscope.agentProfile=/home/bea2/user_projects/csdomain/Introscope/wily/IntroscopeAgent.profile -Dcom.wily.introscope.agent.agentName=AdminServer -da -Dplatform.home=/home/weblogic/bea/weblogic92 -Dwls.home=/home/weblogic/bea/weblogic92/server -Dwli.home=/home/weblogic/bea/weblogic92/integration -Dweblogic.management.discover=true -Dwlw.iterativeDev= -Dwlw.testConsole= -Dwlw.logErrorsToConsole= -Dfile.encoding=GBK -Dibm.stream.nio=true -Dweblogic.ext.dirs=/home/weblogic/bea/patch_weblogic923/profiles/default/sysext_manifest_classpath -Dweblogic.Name=AdminServer -Djava.security.policy=/home/weblogic/bea/weblogic92/server/lib/weblogic.policy weblogic.Server
说明:根据以上提示查看登陆用户bea2启动的进程,注意标红的bea2为进程拥有着, 491796为进程号
3 执行如下命令杀掉进程
$ kill -9 491796(根据2操做查找到得系统进程号)
说明:执行后再执行$ ps -eaf | grep weblogic命令将不会看到该进程号的weblogic进程
4 启动服务
$ ./quickRun.sh
-------------------------------------------------------------------
2.ant -buildfile CMS_MainTrunk.xml //build 包
3.vi test.txt //浏览文件内容
i {insert写输入}
esc 退出insert
:wq! write 保存并退出vi模式
:q! 不保存退出vi模式
4.我一般习惯用ps –ef命令,这样看到以列表形式显示的server进程;用命令pstree来查看server的进程,这样看到以树的形式显示的server进程。
Pstree命令的优点在于可以立即找出某进程的父进程。您可能会需要使用 -p 选项显示每个进程的 PID,以及 -u 选项来显示启动该进程的用户名。
一般来说,这一树结构比较长,您就需要这么执行 pstree –up | less 这将让您纵览整个进程树结构。
5.secureCRT中乱码解决:Options->SessionOptions->Appearance->font把default改成UTF-8,就可以显示中文字体了。

6.hostname:查hostname
7.ifconfig 查询主机IP
8.在S-CRT下用ctrl+c 和ctrl+v:
Options---Global Options---Edit default Settings进去后点Terminal---Emulation然后点Mapped Keys,点中低部的,use windows and paste key,点确认。
9.进入vi的命令:
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
10.移动光标类命令:
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
11.屏幕翻滚类命令:
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏 //好像是 r
Ctrl+b;向文件首翻一屏

12.搜索命令:
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令

postgres使用:
1.进入sql运行环境。
[test@test bin]$ ./psql -n dbname -U usrname
stay81=# select count(*) from table1;
count
-------
5986
(1 row)
2. 退出,使用结束后退出,不然连接一直被挂起。
stay81=# \q
3.postgres 数据导出。
[postgres@test bin]$ ./pg_mp -U postgres -t testTable -d testDB > testTable.mp
或[postgres@test bin]$ ./pg_mp -U postgres -d testDB -t testTable -F c -v > testTable.mp
4. postgres 数据导入。
[postgres@test bin]$ ./psql -U postgres -d testDB < testTable.mp
或[postgres@test bin]$ ./pg_restore -U postgres -d testDB < testTable.mp
5.一台主机上将数据库目录转储到另一台主机上。
pg_mp -h host1 -p 5432 dbname | psql -h host2 -p post1 dbname
或./pg_mp -U postgres -d testDB1 -t testTable | ./psql -U postgres -d testDB2
-U 为用户名 ,-d 为DB名,-t 为表名称,如果整个数据库导出,不需此项。
6.php执行。
[test@test bin]$ /usr/bin/php -q ./batchstart.php

实战操作:
/home/absys6$ ls
dvlp dvlp_bak20090413 personal tmp
/home/absys6$ cd dvlp
/home/absys6/dvlp$ ls
/home/absys6/dvlp$ cd SV_POLICY
/home/absys6/dvlp/SV_POLICY$ ls
include src
/home/absys6/dvlp/SV_POLICY$ cd src
/home/absys6/dvlp/SV_POLICY/src$ ls
/home/absys6/dvlp/SV_POLICY/src$ ls *pc //对文件进行筛选
/home/absys6/dvlp/SV_POLICY/src$ grep VIP *pc //列出包含VIP的所有.pc的文件的代码的一部分。
/home/absys6/dvlp/SV_POLICY/src$ vi PlyPrmCnt.pc //查看整个文件。

G. 有没有人能把这个FLASH下下来,网址:libguides.acadiau.ca/content.phppid=1277&sid=5432

可以把那个框下下来——是FLASH的,但是里面内容是非固定的,从其他地方调用,无法一起保存下来——除非你只要那个框

H. Ubuntu 16.04 怎样安装 PostgreSQL 和 phpPgAdmin

您好,很高兴能帮助您1.安装PostgreSQL首先根据你的服务器架构添加PostgreSQL库:对CentOS6.x32bit:rpm-Uvhtcpfirewall-cmd--reload3.访问PostgreSQL常用的命令提示符默认情况下数据库名和用户名都是postgres。切换至用户以执行相关操作:su–postgres输入以下命令登陆:psql会有以下样例输出:psql(9.3.5)Type"help"forhelp.Postgres=#可通过输入\q退出postgresql返回命令终端:4.设置用户密码登陆至postgres命令提示符界面su–postgrespsql然后使用命令设置密码postgres=#\:Enteritagain:postgres=#\q输入命令以建立PostgreSQL系统管理工具postgres=#CREATEEXTENSIONadminpack;CREATEEXTENSION5.创建用户和数据库例如:用户名:senthil密码:centos数据库名:mydb转到postgres用户su–postgres创建用户senthil$createusersenthil创建数据库$createdbmydb现在登陆至psql提示符界面,为用户senthil设置密码及授权对数据库mydb的访问:$psqlpsql(9.3.5)Type"help"forhelp.postgres=#'centos';ALTERROLEpostgres=#;GRANTpostgres=#6.删除用户和数据库首先转到postgres界面su–postgres输入命令$dropdb删除用户名可输入$dropuser7.配置PostgreSQL-MD5认证MD5认证需要客户端提供一个MD5-encrypted密码以便身份验证。你需要编辑/var/lib/pgsql/9.3/data/pg_hba.conf文件:vi/var/lib/pgsql/9.3/data/pg_hba.conf添加或修改的行如下:[]#TYPEDATABASEUSERADDRESSMETHOD#"local"#IPv4localconnections:hostallall127.0.0.1/32md5hostallall192.168.1.0/24md5#IPv6localconnections:hostallall::1/128md5[]重启postgresql服务以应用更改在CentOS6.x系统中servicepostgresql-9.3restart在CentOS7系统中systemctlrestartpostgresql-9.38.配置PostgreSQL-ConfigureTCP/IP默认情况下,TCP/IP连接是不可行的,所以其他计算机用户不能连接到postgresql。编辑文件/var/lib/pgsql/9.3/data/postgresql.conf可以允许连接:vi/var/lib/pgsql/9.3/data/postgresql.conf找到下面的行:[]#listen_addresses='localhost’[]#port=5432[]把两行都取消并设置为你的postgresql服务器IP地址或设置为“*”监听所有客户端。如下所示:listen_addresses='*'port=5432重启以应用更改在CentOS6.x系统中:/etc/init.d/postgresql-9.3restart在CentOS7系统中:systemctlrestartpostgresql-9.39.使用phpPgAdmin管理PostgreSQLphpPgAdmin是使用PHP编写的基于web的管理工具,用于管理PostgreSQL。它只适用与PostgreSQLRPM库。你的采纳是我前进的动力,记得好评和采纳,答题不易,互相帮助,

I. php中用参数传递的pdo查询语句怎么写

方法 bindParam() 和 bindValue() 非常相似。
唯一的区别就是前者使用一个PHP变量绑定参数,而后者使用一个值。
所以使用bindParam是第二个参数只能用变量名,而不能用变量值,而bindValue至可以使用具体值。
复制代码 代码如下:

$stm = $pdo->prepare("select * from users where user = :user");
$user = "jack";
//正确
$stm->bindParam(":user",$user);
//错误
//$stm->bindParam(":user","jack");
//正确
$stm->bindValue(":user",$user);
//正确
$stm->bindValue(":user","jack");

另外在存储过程中,bindParam可以绑定为input/output变量,如下面:
复制代码 代码如下:

$stm = $pdo->prepare("call func(:param1)");
$param1 = "abcd";
$stm->bindParam(":param1",$param1); //正确
$stm->execute();

存储过程执行过后的结果可以直接反应到变量上。
对于那些内存中的大数据块参数,处于性能的考虑,应优先使用前者。
--------------------------------------------------
http://zh.wikipedia.org/wiki/%E5%8F%83%E6%95%B8%E5%8C%96%E6%9F%A5%E8%A9%A2
参数化查询
参数化查询(Parameterized Query 或 Parameterized Statement)是指在设计与数据库连结并访问数据时,在需要填入数值或数据的地方,使用参数 (Parameter) 来给值,这个方法目前已被视为最有效可预防SQL注入攻击 (SQL Injection) 的攻击手法的防御方式。有部份的开发人员可能会认为使用参数化查询,会让程序更不好维护,或者在实现部份功能上会非常不便[来源请求],然而,使用参数化查询造成的额外开发成本,通常都远低于因为SQL注入攻击漏洞被发现而遭受攻击,所造成的重大损失。
除了安全因素,相比起拼接字符串的 SQL 语句,参数化的查询往往有性能优势。因为参数化的查询能让不同的数据通过参数到达数据库,从而公用同一条 SQL 语句。大多数数据库会缓存解释 SQL 语句产生的字节码而省下重复解析的开销。如果采取拼接字符串的 SQL 语句,则会由于操作数据是 SQL 语句的一部分而非参数的一部分,而反复大量解释 SQL 语句产生不必要的开销。
目录
* 1 原理
* 2 SQL 指令撰写方法
o 2.1 Microsoft SQL Server
o 2.2 Microsoft Access
o 2.3 MySQL
o 2.4 PostgreSQL/SQLite
* 3 客户端程序撰写方法
o 3.1 ADO.NET
o 3.2 PDO
o 3.3 JDBC
o 3.4 Cold Fusion
[编辑] 原理
在使用参数化查询的情况下,数据库服务器不会将参数的内容视为SQL指令的一部份来处理,而是在数据库完成 SQL 指令的编译后,才套用参数运行,因此就算参数中含有具破坏性的指令,也不会被数据库所运行。
[编辑] SQL 指令撰写方法
在撰写 SQL 指令时,利用参数来代表需要填入的数值,例如:
[编辑] Microsoft SQL Server
Microsoft SQL Server 的参数格式是以 "@" 字符加上参数名称而成,SQL Server 亦支持匿名参数 "?"。
SELECT * FROM myTable WHERE myID = @myID
INSERT INTO myTable (c1, c2, c3, c4) VALUES (@c1, @c2, @c3, @c4)
[编辑] Microsoft Access
Microsoft Access 不支持具名参数,只支持匿名参数 "?"。
UPDATE myTable SET c1 = ?, c2 = ?, c3 = ? WHERE c4 = ?
[编辑] MySQL
MySQL 的参数格式是以 "?" 字符加上参数名称而成。
UPDATE myTable SET c1 = ?c1, c2 = ?c2, c3 = ?c3 WHERE c4 = ?c4
[编辑] PostgreSQL/SQLite
PostgreSQL 和 SQLite 的参数格式是以 “:” 加上参数名而成。当然,也支持类似 Access 的匿名参数。
UPDATE "myTable" SET "c1" = :c1, "c2" = :c2, "c3" = :c3 WHERE "c4" = :c4
[编辑] 客户端程序撰写方法
在客户端代码中撰写使用参数的代码,例如:
[编辑] ADO.NET
ADO.NET用于ASP.NET之内。
SqlCommand sqlcmd = new SqlCommand("INSERT INTO myTable (c1, c2, c3, c4) VALUES (@c1, @c2, @c3, @c4)", sqlconn);
sqlcmd.Parameters.AddWithValue("@c1", 1); // 设定参数 @c1 的值。
sqlcmd.Parameters.AddWithValue("@c2", 2); // 设定参数 @c2 的值。
sqlcmd.Parameters.AddWithValue("@c3", 3); // 设定参数 @c3 的值。
sqlcmd.Parameters.AddWithValue("@c4", 4); // 设定参数 @c4 的值。
sqlconn.Open();
sqlcmd.ExecuteNonQuery();
sqlconn.Close();
[编辑] PDO
PDO用于PHP之内。 在使用 PDO 驱动时,参数查询的使用方法一般为:
复制代码 代码如下:

// 实例化数据抽象层对象
$db = new PDO('pgsql:host=127.0.0.1;port=5432;dbname=testdb');
// 对 SQL 语句执行 prepare,得到 PDOStatement 对象
$stmt = $db->prepare('SELECT * FROM "myTable" WHERE "id" = :id AND "is_valid" = :is_valid');
// 绑定参数
$stmt->bindValue(':id', $id);
$stmt->bindValue(':is_valid', true);
// 查询
$stmt->execute();
// 获取数据
foreach($stmt as $row) {
var_mp($row);
}
[code]
对于 MySQL 的特定驱动,也可以这样使用:
$db = new mysqli("localhost", "user", "pass", "database");
$stmt = $mysqli -> prepare("SELECT priv FROM testUsers WHERE username=? AND password=?");
$stmt -> bind_param("ss", $user, $pass);
$stmt -> execute();
值得注意的是,以下方式虽然能有效防止 SQL注入 (归功于 mysql_real_escape_string 函数的转义),但并不是真正的参数化查询。其本质仍然是拼接字符串的 SQL 语句。
[code]
$query = sprintf("SELECT * FROM Users where UserName='%s' and Password='%s'",
mysql_real_escape_string($Username),
mysql_real_escape_string($Password));
mysql_query($query);

[编辑] JDBC
JDBC用于Java之内。
java.sql.PreparedStatement prep = connection.prepareStatement(
"SELECT * FROM `users` WHERE USERNAME = ? AND PASSWORD = ?");
prep.setString(1, username);
prep.setString(2, password);
prep.executeQuery();
[编辑] Cold Fusion
<cfquery name="Recordset1" datasource="cafetownsend">
SELECT *
FROM COMMENTS
WHERE COMMENT_ID =<cfqueryparam value="#URL.COMMENT_ID#" cfsqltype="cf_sql_numeric">
</cfquery>

J. 怎么在linux中使php支持postgresql

不考虑系统版本、安装的系统是不是最小化安装、pgsql版本等问题,那么正常应该是下面的安装方法就可以成功的,如果想可以远程连接,则要在防火墙里开放端口5432。 三、安装PostgreSQL

阅读全文

与php5432相关的资料

热点内容
大奶女电影版 浏览:653
汽车遥控编程器 浏览:783
方舟在服务器如何发全体文字 浏览:346
一部很多女子格斗的电影 浏览:770
外国大胸美女电影推荐 浏览:208
大尺很色床戏电影 浏览:432
郑州阿里程序员 浏览:131
韩国爱情推理片全部复制 浏览:462
台湾影视国语 浏览:571
穿越之我那三千个兄弟训诫 浏览:486
连母亲都收的小说 浏览:839
叶子媚演过尺较大的电影在线观看 浏览:832
app反感怎么解决 浏览:332
极光设置app是什么 浏览:79
app广告怎么赚钱 浏览:917
男主被系统控制的小说下载 浏览:951
钛2电影高清完整版 浏览:440
linux启动项目命令 浏览:531
乳山迷雾txt全文阅读全文小说 浏览:885
vm同步命令 浏览:14