没有任何参数,它会正常工作,但是当参数在那里,给出以下错误 –
sqlSTATE [42000]:语法错误或访问冲突:8018 [Microsoft] [用于sql Server的ODBC驱动程序11] [sql Server]无效的参数4(''):数据types0x23是不赞成使用的大对象或LOB,作为输出参数。 不推荐使用已弃用的types作为输出参数。 使用当前的大对象t(sqlExecute [8018]在/builddir/build/BUILD/PHP-5.3.3/ext/pdo_odbc/odbc_stmt.c:254)
它运行在CentOS 6上,用于sqlServer®的ODBC驱动程序11 – RedHat Linux,unixODBC-2.3.0,MSsql Server 2008 R2
连接string:
在一个string上使用awk
将html5页面logging为video
内存被推入向量后损坏
你如何获得一个进程已经运行了多久?
$con = new PDO("odbc:dsnName",'sa','saa'); $con->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); $con->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
使用的示例存储过程:
$stmt = $con->prepare( "SET NOCOUNT ON DECLARE @return_value int EXEC @return_value = [sp_insert_into_t_contact_test] @paravalue = ? SELECT 'returnV' = @return_value"); $stmt->bindParam(1,$v1 = 5,PDO::ParaM_STR,100); $stmt->execute(); $return =$stmt->fetch(); echo $return['returnV'];
简单的存储过程返回“123”
[dbo].[sp_insert_into_t_contact_test] @paravalue varchar(100) AS return 123
附加信息 –
odbc.ini文件 –
[dsnName] Driver=sql Server Native Client 11.0 Description=My Sample ODBC Database Connection Trace=Yes Server=192.168.2.60 Port=1433 Database=NSCDB_3
ODBCINST.INI
[sql Server Native Client 11.0] Description=Microsoft ODBC Driver 11 for sql Server Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0 Threading=1 UsageCount=1
uevent从内核发送到用户空间(udev)
如何将从linux命令生成的stringinput到variables?
版本'CXXABI_1.3.8'找不到(需要…)
为什么每次从内核模块读取CR3寄存器的内容会有所不同?
UNIX:退出时等待进程subprocess?
最后我找到了解决方案,Microsoft驱动程序已经为C或C ++应用程序开发,PDO参数绑定不能按预期工作。 如果您传递参数而不使用PDO,则所有事情都按预期工作。 @paravalue = N'".$v1."'
前面的例子 – 正常参数绑定 – sqlBindParameter PDO参数绑定 – $stmt->bindParam(1,100);
更正的鳕鱼片段:
$stmt = $con->prepare( "SET NOCOUNT ON DECLARE @return_value int EXEC @return_value = [sp_insert_into_t_contact_test] @paravalue = N'".$v1."' SELECT 'returnV' = @return_value"); $stmt->execute(); $return =$stmt->fetch(); echo $return['returnV'];