小编Bra*_*ess的帖子

使用PHP运行MSSQL存储过程(并获得结果)

我的工作是将所有PHP Web应用程序从我们的Windows生产Web服务器移到专门用于PHP应用程序的新Linux服务器环境.棘手的部分是,我们正在运行的几个PHP应用程序正在使用MSSQL数据库,因此必须重新编写所有数据库连接以使用unixODBC/FreeTDS,因为Linux上的PHP不支持mssql_connect()并且它是相关的功能.

我已经连接下来,基本查询执行正常.我遇到的问题是运行存储过程,并通过ODBC复制mssql_init()/ mssql_bind()/ mssql_execute()功能.

我正在研究的问题领域如下:

$sp = mssql_init('sp_Search', $this->_link);
mssql_bind($sp, '@search', $this->_searchString, SQLVARCHAR);
$results = mssql_execute($sp);
Run Code Online (Sandbox Code Playgroud)

我读了很多关于各种ODBC函数和MSSQL函数的内容.我尝试过使用odbc_prepare()/ odbc_execute()函数,但无济于事(我总是从SQL服务器收到HY000错误代码).我最接近的是:

$results = odbc_exec($this->_link, "EXEC sp_Search @search='@this->_searchString'");
Run Code Online (Sandbox Code Playgroud)

通过MSSQL管理控制台运行该查询("EXEC sp_Search @ search ='blah'")可以很好地工作,但是通过PHP它似乎可以工作,但如果我尝试从结果集中获取行,我会得到"没有可用的元组"在这个结果索引"错误.无论如何,odbc_next_result()都会返回false.

我也尝试将光标设置在与SQL_CUR_USE_ODBC的连接上,但这也没有帮助.有没有人有这方面的经验?它是否可能,或者如果没有本机MSSQL驱动程序,该功能根本不可用?

编辑:

为了澄清,我尝试使用odbc_prepare()和odbc_execute(),如下所示:

$results = odbc_prepare($this->_link, "{CALL sp_Search(?)}");
$params = array($this->_searchString);
odbc_execute($results, $params);
Run Code Online (Sandbox Code Playgroud)

这会导致以下错误:

Warning: odbc_execute(): SQL error: Failed to fetch error message, SQL state HY000 in SQLExecute
Run Code Online (Sandbox Code Playgroud)

php sql-server odbc

5
推荐指数
1
解决办法
6309
查看次数

重新生成实体框架代码第一模型

在使用Visual Studio 2013的ASP.NET项目中使用Entity Framework 6 Code First,是否有任何方法可以重建(或更新)生成的DataContext和模型类,而无需每次单步执行实体数据模型向导?

我完全知道如何使用EDMX设计器执行此操作,但同样,我正在使用"数据库中的代码优先"方法,只是想知道是否有一键式(或一个控制台命令)方式来触发重建无需删除生成的上下文类,然后每次对备份数据库进行更改时单步执行实体数据模型向导.

c# asp.net entity-framework visual-studio-2013

5
推荐指数
1
解决办法
3195
查看次数

nth-Child CSS选择器

我有九套颜色方案,我想应用于一系列div.使用:nth-child(1), :nth-child(2)...前九个的作品,但是我希望之后的序列重复,我不能用(3n + 2)符号包围我...我想我明白了,但我不能似乎哄它做我想做的事.

这是可能的,还是我应该在我写出来时为每个div应用一个类?

css css-selectors css3

3
推荐指数
2
解决办法
3164
查看次数