我是这样做的,确定mssql是正常的用户名密码也可以,但下面就是不行。
<?php教程
$con=mssql_connect( "localhost", "sa ", "123456 ") or die ('error');
?>
错误提示
warning: mssql_connect() [function.mssql-connect]: unable to connect to server: $sa in d:php2.php on line 11
error
下面来看一下我的解决方法吧,
系统是:
win2003+mssql2000+php5.23
实现方法
php目录下有没有ntwdblib.dll有没有这个文件?ntwdblib.dll是客户连接库,如果有查看一下版本号是多少,一般会是7.0的,这个只能与mssq 7.0进行连接,我们为了能与我们现数据库教程版本相同就把mssql下的ntwdblib.dll拷贝到你php 所在的目录替换那个7.0的,重起iis就ok了
插曲,如果你的mssql连接有问题可利用php自带了函数 mssql_get_last_message(),来取得错误信息哦。
在php中urlencode和rawurlencode 是对中文进行编码的
string urlencode ( string str)
返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数。这是在 rfc 1738 中描述的编码,是为了保护原义字符以免其被解释为特殊的 url 定界符,同时保护 url 格式以免其被传输媒体(像一些邮件系统)使用字符转换时弄乱
*/
$a ='?a=中文';
$urlencode =urlencode($a);
echo $urlencode; //%3fa%3d%d6%d0%ce%c4
/*
string rawurldecode ( string str)
返回字符串,此字符串中百分号(%)后跟两位十六进制数的序列都将被替换成原义字符。
*/
$c = rawurlencode($urlencode);///a%253d%25d6%25d0%25ce%25c4;
echo $c;
/*
用iconv函数:
iconv( "utf-8", "gb2312" , "abc阳光123");
据说这样好些,可以忽略转换时的错误!
iconv( "utf-8", "gb2312//ignore" , "abc阳光123");
mb_convert_encoding的用法见官方:
http://cn.php教程.net/manual/zh/function.mb-convert-encoding.php
做一个gbk to utf-8
< ?php
header("content-type: text/html; charset=utf-8");
echo mb_convert_encoding("我的友仔", "utf-8", "gbk");
?>
再来个gb2312 to big5
< ?php
header("content-type: text/html; charset=big5");
echo mb_convert_encoding("你是我的朋友", "big5", "gb2312");
?>
不过要使用上面的函数需要安装但是需要先enable mbstring 扩展库。
php中的另外一个函数iconv也是用来转换字符串编码的,与上函数功能相似。
下面还有一些详细的例子:
iconv — convert string to requested character encoding
(php 4 >= 4.0.5, php 5)
mb_convert_encoding — convert character encoding
(php 4 >= 4.0.6, php 5)
用法:
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )
需要先enable mbstring 扩展库,在 php.ini里将; extension=php_mbstring.dll 前面的 ; 去掉
mb_convert_encoding 可以指定多种输入编码,它会根据内容自动识别,但是执行效率比iconv差太多;
开始时经常会碰到如下提示
warning: session_start() [function.session-start]: cannot send session cache limiter - headers already sent (output started at e:php教程www.111cn.netadmin.php:1) in e:phpwww.111cn.netlogolistadminlogo.php on line 2
这是提供session前面己经有输出了,我们只要把session_start()放在最前面,同时最了为避免出错提供可以在前面加@,如@session_start();这样就可以了。
同时也可以在php.ini中修改session.auto_start = 0 为 session.auto_start = 1
就可以了。
出现这种问题是变量未定义了,我们只要把加个验证如
$a =isset($_get['aa'])?$_get['aa']:'变量未定义';
这样未定义变量也不会出现undefined variable和 undefined index
提供哦,同时我们还提供在php ini或在php中设置错误不提示的方法
解决方法:
1) error_reporting设置:
找到error_reporting = e_all
修改为error_reporting = e_all & ~e_notice
2) register_globals设置:
找到register_globals = off
修改为register_globals = on