Home  >  Article  >  Backend Development  >  php连接MSSQL问题

php连接MSSQL问题

WBOY
WBOYOriginal
2016-06-23 14:17:311112browse

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 "<table><tr>";echo "<th>fnumber</th>";echo "<th>fname</th></tr>";while (odbc_fetch_row($rs)){         $fname=odbc_result_all($rs,fnumber);		 $fnumber=odbc_result($rs,fname);		 echo "<tr><td >$fname</td>";         echo "<td align='center'>$fnumber</td></tr>";		     }odbc_close($conn);echo "</table>";

我想问一下 ,能把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
 

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn