1. php连接sql2000问题
PHP完全可以连接MSSQL的。
1.首先需要MSSQLClientTools是一个dll叫做ntwdblib.dll,它通常在MSSQLServer安装以后被到系统的system32文件夹下;如果是SQLServer就在本地,那你需要核实的是该ntwdblib.dll的版本与SQLServer的版本一致(2005对应2000.80.194.0,2000对应的是2000.2.8.0;)如果SQLServer在远程,需要将那个ntwdblib.dll拷贝到本机器的system32文件夹下;
(这里经常遇见的一个问题是,如果php<通常是较老的ntwdblib.dll>晚于SQLServer安装的话,php的ntwdblib.dll会覆盖SQLserver安装时在system32下的ntwdblib.dll,导致链接是提示:链接不上数据库)
2.核实完system32下的ntwdblib.dll之后,还需要将正确版本的ntwdblib.dll覆盖php文件夹下的ntwdblib.dll;
3.使用MSSQLServer的方法与MySQL的方法很类似;
如下:
<?php
//链接数据库
$conn=mssql_connect('IBM-F24B11ED1CCSQLEXPRESS','sa','123456');
mssql_select_db('LabMIS',?$conn);
//query语句
$Query="select*fromadmin";
$AdminResult=mssql_query($Query);
//输出结果
$Num=mssql_num_rows($AdminResult);
for($i=0;$i<$Num;$i++)
{
$Row=mssql_fetch_array($AdminResult);
echo($Row[1]);
echo("<br/>");
}
?>
2. php文件中,一个字符串最长可以有多长
你说的是php的变量能存多少范围吧?比如
$str='IamChinese';
一般来说,php不限制变量的长度
你可以打开你的php.ini,里面有这样的配置语句:(我用的mssql数据库,就拿它举例吧)
; Valid range 0 - 2147483647.Default = 4096.
;mssql.textlimit = 4096
; Valid range 0 - 2147483647.Default = 4096.
;mssql.textsize = 4096
可见php确实对变量大小没有限制(2G的限制目前确实可以视为不存在),只是在默认的配置下被限制到了4096字节,亦即2048个汉字。
如果你想增大php的变量最大字节的话,可以在php.ini中修改以下代码:
ini_set("mssql.textsize",200000);
ini_set("mssql.textlimit",200000);
3. php杩炴帴mssql鏁版嵁搴撶殑鍑犵嶆柟娉昣php瀹炰緥
娉ㄦ剰瑕侀吨钖链嶅姟浣垮叾鐢熸晥銆 涓銆佸缓绔嬭繛鎺1銆乷dbc棣栧厛锛屽湪php绋嫔簭镓鍦ㄧ殑链嶅姟鍣ㄨ剧疆odbc銆傝繖閲32浣嶅拰64浣嶆搷浣灭郴缁熸湁鍖哄埆銆32浣岖殑浠庢带鍒堕溃𨱒夸腑绠$悊宸ュ叿涓镄勬暟鎹婧愶纸odbc锛夌洿鎺ュ缓绔嫔氨鍙浠ヤ简锛64浣岖殑瑕佽繍琛孋:WindowsSysWOW64odbcad32.exe 浠庤繖閲岄溃璁剧疆銆傛敞镒忥细涓婇溃鍙镄勬槸鏁版嵁搴撴湇锷″櫒涓32涓虹殑锛屾暟鎹婧愯剧疆链嶅姟鍣ㄤ负32浣嶅拰64浣崭袱绉岖殑𨱍呭喌銆傚彧瑕佷袱涓链嶅姟鍣ㄥ缓绔嬬殑鏁版嵁婧愪綅鏁颁竴镊村氨濂姐 涓嬮溃鏄痮dbc寤虹珛杩炴帴浠g爜銆 澶嶅埗浠g爜浠g爜濡备笅:$con = odbc_connect('odbc钖岖О','鐢ㄦ埛钖','瀵嗙爜'); 2銆佽繛鎺mssql2000澶嶅埗浠g爜浠g爜濡备笅:$con = mssql_connect('鏁版嵁搴揿湴鍧','鐢ㄦ埛钖','瀵嗙爜'); 3銆佽繛鎺mssql2008澶嶅埗浠g爜浠g爜濡备笅:$connectionInfo = array("UID"=鐢ㄦ埛钖,"PWD"=瀵嗙爜,"Database"="鏁版嵁搴揿悕绉"); $con = sqlsrv_connect( 鏁版嵁搴揿湴鍧,$connectionInfo); 浜屻佽緭鍏ユ煡璇浠g爜 杩欎釜閮戒竴镙凤纴鍙浠ョ洿鎺ュ啓鍏ワ纴涔熷彲浠ヤ粠mssql涓楠岃瘉濂藉悗澶嶅埗杩囨潵銆傜亩鍗旷偣璇村氨鏄鎶娄竴涓狲ql璇鍙ヨ祴鍊肩粰涓涓鍙橀噺銆 绫讳技涓嬮溃浠g爜澶嶅埗浠g爜浠g爜濡备笅:$query = "SELECT top 12 * 鏁版嵁搴揿悕绉 order by id desc"; 涓夈佸缓绔嬫煡璇㈠苟鍙栧嚭鏁版嵁1銆乷dbc澶嶅埗浠g爜浠g爜濡备笅:$result = odbc_do($con,$query); while(odbc_fetch_row($result)){$鍙橀噺钖岖О = odbc_result($result, "瀛楁靛悕绉");}2銆佽繛鎺mssql2000澶嶅埗浠g爜浠g爜濡备笅:$result = mssql_query($con, $query); while($row =mssql_fetch_array($result)){$鍙橀噺钖岖О = $row["瀛楁靛悕绉"];}3銆佽繛鎺mssql2008澶嶅埗浠g爜浠g爜濡备笅:$result = sqlsrv_query($con, $query); while($row = sqlsrv_fetch_array($result)){$鍙橀噺钖岖О = $row["瀛楁靛悕绉"];}鍦╬hp5.3鍙娄互钖庣殑鐗堟湰涓涓嶉梼甯sqlsrv搴扑简銆傛墍浠ヨ佷粠寰杞杩欓噷涓嬭浇銆 锲涖佸叧闂杩炴帴
4. php知识框架总结
php知识框架总结
篇一:php基础知识点总结
PHP语言基础简单整理
1.开始结束标记的格式只有在没有判断语句时才能使用。
对表单传递的变量进行编码和解码:PHP中实现对查询字符串进行URL编码可以通过函数urlencode()实现,该函数的使用格式如下:string urlencode(string str);对URL编码后的查询字符串进行解码,可以通过urldecode()函数实现,该函数的使用格式如下:string urldecode(string str);
15.PHP连接数据库:
步骤: 一、建立连接------mssql_connect(server,uid,pwd);
二、指定database-------mssql_select_db(databasename);
三、执行sql------mssql_query($sql,$link);
四、处理记录集-------资源类型数据,格式:bof---数据---eof
五、以特定格式读取数据-----mssql_fetch_array()....
六、释放相关资源、关闭连接------mssql_free_result($result);mssql_close();
16.数组:php的数组由键值和value值组成
定义:$array = array("键值"=>"value","键值"=>"value","键值"=>"value");如果不给键值赋值,默认从0开始的int值
相关函数:(1)in_array("值",数组名); 返回bool型-----查看数组中是否存在某value值
(2)array_key_exists("key值",数组名); 返回bool型-----查看数组中是否存在某键值
(3)array_keys(数组名);---将数组键值返回出来形成一个新数组,此键值作为新数组的value值
(4)array_values(数组名);---将数组value值返回出来形成一个新数组,此值作为新数组的value值
(5)key(数组名);----返回当前指针指向的元素key值
(6)current(数组名);----返回当前指针指向的元素value值
(7)next(数组名);----挪动当前数组指针到下一步
(8)reset(数组名);----恢复数组指针,指向第0个元素
(9)end(数组名);----将指针挪向最后一个元素
(10)prev(数组名);----将指针向前挪动一位
(11)foreach(数组名 as $key=>$value)
{
$key是键值,$value是value值,实现数组遍历
}
(12)each(数组名);----将当前数组元素依次取出(自动挪动指针)并放到一个新的数组中
(13)array_shift(数组名);----返回数组中第一个元素值
(14)array_pop(数组名);----返回数组最后一个元素值
(15)array_push(数组名,value);----向数组中追加元素
(16)array_unshift(数组名,value);----在数组最前面添加元素
(17)array_pad(数组名,数组长度,value);----向数组中追加多个元素,对数组副本操作,不改变原数组,返回一个新数组
(18)count();----返回个数
(19)array_unique(数组名);----去掉数组中重复部分,操作数组副本,不改变原数组,返回新数组
(20)sort(数组名);----从小到大升序排列数组value值,一般针对int型value值,返回bool型,成功返回true
(21)rsort(数组名);----从大到小,逆序排列数组value值
(22)array_combine(数组1,数组2);----将数组1的value值作为key,数组2的value值作为value值,形成一个新数组
(23)array_merge(数组1,数组2,数组3...);----合并多个数组,将多个数组value值依次合并,合为一个数组
(24)array_slice(数组名,int,int);----从目标数组截取元素,形成一个新数组。开始位置为第二个参数,结束位置为第三个参数。若第三个参数不写,则默认是截取到最后。
(25)array_splice();----用法同array_slice();但是其截取部分从原数组中删除
(26)explode("字符依据",目标字符串);----将字符串按照一定的依据拆分成数组
(27)implode("字符依据",目标数组);----将数组元素按照依据组合成一个字符串
(28)range(mixed low,mixed high[number step]);----生成数组,例:range(1,100,8);---即从1到100,每8位取一个数,组成一个数组
(29)shuffle(数组名);----用于将数组进行随机排序
(30)array_sum(数组名);----对数值型数组元素值进行求和
(31)array_chunk(数组名,int);----分割目标数组,返回一个新数组,其中数组的每个元素都是一个一维数组,int参数为分割成的一维数组的长度
17.Cookie和会话控制:
Cookie是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie是由Web服务器保存在客户机上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web站点都可以访问Cookie信息。
存在server端的是session,存在client端的是cookie,它们用来存储全局变量。 设定Cookie值:setcookie("名","值");
通过Cookie数组取值:$_cookie["名"];
设置生成期:setcookie("名","值",time()+1800);生成期为当前时间加1800秒之后。
删除cookie: setcookie("名","",time()-3600);中间值设置为空,并将当前时间减去3600秒。 Cookie数组:setcookie("名[key]","值"); 使用foreach读取。
在PHP中可以通过$_COOKIE预定义变量访问Cookie的值。如果设置了php.ini中的register_long_arrays,那么就能够应用$_COOKIE和$HTTP_COOKIE_VARS;如果在php.ini中还设置了register_globals,那么就可以在PHP中作为全局变量使用各个Cookie值。但是,更改php.ini中的两个文件设置,容易对PHP的安全构成威胁,不推荐使用该方法,建议使用更新的$_COOKIE。
会话ID的传送
会话ID的传送有两种方式,一种是Cookie方式,另一种是URL方式。
Cookie传送方式:
这是最简单的会话方式,但是有些客户可能限制使用Cookie,如果客户限制使用Cookie的条件下,仍要继续工作,那就要通过其他方式来实现了。
URL传送方式:
在该方式中,URL本身用来传送会话,会话标志被简单地附加到URL的尾部,或者作为窗体中的一个变量来传递。例:
5. python3连接MSSQL数据库 中文乱码怎么解决
以前用php连mssqy时也经常出现中文乱码(中文变问号)的问题,那时就明白是编码没设置好导航,现在的Python连mssql数据库也同样出现这问题,问题一样,解决的办法当然也会相似,现在我们来看看解决方法。
python一直对中文支持的不好,最近老遇到编码问题,而且几乎没有通用的方案来解决这个问题,但是对常见的方法都试过之后,发现还是可以解决的,下面总结了常用的支持中文的编码问题(这些方法中可能其中一个就能解决问题,也可能是多个组合)。
(1)、首先,要保证文件的开头要加上编码设置来说明文件的编码
代码如下
复制代码
#encoding=utf-8
(2)、然后,在连接数据的连接参数里加上字符集说明查询出的结果的编码,这个不加的后果可能是查询出的汉字字符都是问号
代码如下
复制代码
conn=pymssql.connect(server='.',user='', password='',database='MyTest',charset='utf8')
(3)、设置python系统的默认编码(对于文件来说,这招几乎屡试不爽,呵呵~~)
代码如下
复制代码
import sys
reload(sys)
sys.setdefaultencoding('utf8')
注意:上述编码是“utf8”,而不是“utf-8”,我也没弄明白,大部分情况下,这个无所谓的,但是这里我试了必须要是“utf8”
一个简单的完整的python连接mssqlserver的例子如下(得安装pymssql包):
代码如下
复制代码
#encoding:utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import pymssql
try:
conn=pymssql.connect(server='.',user='', password='',database='MyTest',charset='utf8')
sql="select * from UserInfo"
cur=conn.cursor()
cur.execute(sql)
data=cur.fetchall()
conn.close()
print data
except Exception,e:
print e
运行结果如下:
代码如下
复制代码
[(u'20093501', u'xb9xf9xbexb8', u'u7537 ', 35, u'xb4xf3xcfxc0'),
(u'20093502', u'xbbxc6xc8xd8', u'u5973 ', 34, u'xc3xc0xc5xae'),
(u'20093503', u'xc1xeexbaxfcxb3xe5', u'u7537 ', 25, u'2Bxc7xe0xc4xea'),
(u'20093504', u'xc8xcexd3xafxd3xaf', u'u5973 ', 24, u'xc6xafxc1xc1')]
[Finished in 0.2s]
虽然摆脱了问号和乱码的困扰,但这仍不是我们想要的结果,但这个确实是正确的,因为结果是utf8编码。这个现象确实诡异,请教了许多高手,得知,最好的结果就是逐个字段查询,才能显示中文,整个查询的话,会以utf8的格式显示出来。
上述代码中第14行data是整个查询的结果,如果指定某个具体的字段,如print data[0][2](表示取查询结果的第一行第三列的字段的值),则会输出中文。
其实不仅仅是mssqlserver数据库,mysql(需下载MySQLdb包)、sqllite(python自带的文件数据库)、mongodb(需下载PyMongo包)等或者是普通文本文件也是类似的解决方案。
6. 求php连接MSSQL数据源码份,有注释最好~~
$conn = mssql_connect('127.0.0.1','用户名','密码') or die('连接不成功'); //连接服务器
mssql_select_db('数据名',$conn) or die('数据库不存在'); //选择数据
mssql_query("sql语句");//查询数据
连接需要服务器php_mssql.dll扩展,php.ini中启用extension=php_mssql.dll (适合php5.3之前版本,php5.3或之后用SQLServerDriverForPHP驱动)
SQLServerDriver连接:
$serverName = "(local)";
$connectionInfo = array( "Database"=>"数据库名", "UID" => '用户', "PWD" => '密码');
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn )
{
echo "Connection established.\n";
}
else
{
echo "Connection could not be established.\n";
die( print_r( sqlsrv_errors(), true));
}
.....................
sqlsrv_close( $conn);
http://www.microsoft.com/sqlserver/2005/en/us/PHP-Driver.aspx