欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php连接MSSQL问题

程序员文章站 2022-06-12 21:05:57
...
PHP MS SQL 我本机装的wamp的开发环境,因为要开发新的站点,但数据是存在远程的MSSQL数据库里面的
我在网上找到两种连接MSSQL的方法,一种我用mssql_connect 总是连接不上,后来我用下面这种方法连接上的
2
/**

* php使用ODBC连接sql server数据库实例
*/

$server='ip地址或服务器名';
$username='数据库用户名';
$password='数据库密码';
$database='数据库名';

$connstr = "Driver={SQL Server};Server=$server;Database=$database";

if ( !odbc_connect($connstr,$username,$password,SQL_CUR_USE_ODBC)){
echo "Couldn't connect to SQL Server on $server";
}else{
echo "Connect successfully!
";
}
?>
现在是连接数据成功了
但后面的SQL查询语句怎么写
我在后面这样写它会报错
if ( !odbc_connect($connstr,$username,$password,SQL_CUR_USE_ODBC))
{ echo "Couldn't connect to SQL Server on $server";
}
else{
while($row=mssql_fetch_array(mssql_query('select * from t_item')))
{

echo $row[0];

}
}

Warning: mssql_query() [function.mssql-query]: Unable to connect to server: (null) in C:\wamp\www\mssql.php on line 12

Warning: mssql_query() [function.mssql-query]: A link to the server could not be established in C:\wamp\www\mssql.php on line 12

Warning: mssql_fetch_array(): supplied argument is not a valid MS SQL-result resource in C:\wamp\www\mssql.php on line 12


是不是这种连接的查询语法不是这样写的

回复讨论(解决方案)

odbc_connect($connstr,$username,$password,SQL_CUR_USE_ODBC)
你是使用 odbc 连接数据库的
那么就应该使用 odbc 函数组进行操作

odbc_connect($connstr,$username,$password,SQL_CUR_USE_ODBC)
你是使用 odbc 连接数据库的
那么就应该使用 odbc 函数组进行操作

那如果我想echo我要查的那个表后面该怎么写

mssql连不上的原因会不会是php中mssql的扩展没开?

$conn = odbc_connect($connstr,$username,$password,SQL_CUR_USE_ODBC);
$rs = odbc_exec($conn, 'select * from tbl_name');
$ar = odbc_fetch_array($rs);
print_r($ar);

mssql连不上的原因会不会是php中mssql的扩展没开?
mssql的拓展打开了 而且ntwdblib.DLL这个文件的版本我也换了还是没用,因为mssql公司的业务系统在上面运行不怎么敢动,所以放弃了 只有另找方法了

$conn = odbc_connect($connstr,$username,$password,SQL_CUR_USE_ODBC);
$rs = odbc_exec($conn, 'select * from tbl_name');
$ar = odbc_fetch_array($rs);
print_r($ar);
首先先谢谢斑竹
我刚才在百度上搜了一下 我是这些写的 网页中能显示数据

$conn=odbc_connect($connstr,$username,$password,SQL_CUR_USE_ODBC);$sql="select * from t_item where fname like '%南昌%'";$rs=odbc_exec($conn,$sql);if (!$rs){exit("Error in SQL");}echo "
";echo "";echo "";while (odbc_fetch_row($rs)){ $fname=odbc_result_all($rs,fnumber); $fnumber=odbc_result($rs,fname); echo ""; echo ""; }odbc_close($conn);echo "
fnumberfname
$fname$fnumber
";
我想问一下 ,能把SQL查询改成调用SQL SQRVER中的存储过程吗,用什么方法调用存储过程,参数怎么给,
给我指明大概的方法就可以了

那不是一样吗?你在控制台怎么执行,程序里就怎么写

存储过程是已经写好的,那个存储过程比较复杂,连接好了好多表,也有临时表,我想问的是在PHP中用什么函数可以调用到那个存储过程,我没用过 odbc_connect这种连接方式,后面不知道怎么下手继续

使用pdo吧,n具体的去看手册,现在都流行使用pdo,不用函数。

odbc_exec 执行 sql 指令,并返回结果
存储过程也属于 sql 指令

存储过程是已经写好的,那个存储过程比较复杂,连接好了好多表,也有临时表,我想问的是在PHP中用什么函数可以调用到那个存储过程,我没用过 odbc_connect这种连接方式,后面不知道怎么下手继续

odbc_exec 执行 sql 指令,并返回结果
存储过程也属于 sql 指令


存储过程是已经写好的,那个存储过程比较复杂,连接好了好多表,也有临时表,我想问的是在PHP中用什么函数可以调用到那个存储过程,我没用过 odbc_connect这种连接方式,后面不知道怎么下手继续
我在查询分析器这样写
select fname='南昌' into #mssql exec mssql drop table #mssql 可以正常查询
在PHP里写成这样
$sql=" select fname='南昌' into #mssql exec mssql drop table #mssql";
$rs=odbc_exec($conn,$sql);
就会报错

Warning: odbc_fetch_row() [function.odbc-fetch-row]: No tuples available at this result index in C:\wamp\www\mssql.php on line 20

有中文,就要检查是否编码问题

相关标签: php连接MSSQL问题