直接执行SQL;无游标,SQL状态01000在SQLExecDirect [英] Executing SQL directly; no cursor., SQL state 01000 in SQLExecDirect

查看:1877
本文介绍了直接执行SQL;无游标,SQL状态01000在SQLExecDirect的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用WAMP服务器PHP 5.3.4和sql server 2008 r2连接使用驱动程序odbc驱动程序2011
当我执行此查询时,我得到正确的答案,

  SELECT [password],[username] FROM [customer] 

但有错误执行以下查询时,我检查了sqlserver中的相同查询,它给出了结果corrcetly

  SELECT [password],[username] FROM customer where $ name = [password] and $ pass = [username] 
pre>

这是导致错误的原因


遇到PHP错误



严重性:警告



邮件:odbc_exec():SQL错误:[Microsoft] SQL
服务器] [SQL Server]直接执行SQL;无光标。,SQL状态01000
在SQLExecDirect



文件名:models / general_account.php



行号:18



更新: p $ p> 函数登录($ name,$ pass)
{
var_dump($ name);
var_dump($ pass);
$ this-> load-> database();
$ conn = odbc_connect('odbcconnection','sa','sa')或die('error');
$ sql ='SELECT [password],[username] FROM customer其中$ name = [password]和$ pass = [username]';
$ rs = odbc_exec($ conn,$ sql)或die('exe error');
odbc_close($ conn);
}

感谢提前。

解决方案

它是我自己做的一个愚蠢的错误,

  $ sql ='SELECT [password],[username] FROM customer其中$ name = [password]和$ pass = [username]'; 

我只是打印存储在$ sql变量中的sql查询,并在MSSQL服务器上运行该查询,
查询来自这样,

  SELECT [password],[username] FROM customer其中asd = [password] asd123 = [username] 

但在sql server中,我们需要在引号中给出字符串

  $ sql =SELECT [password],[username] FROM customer where'$ name'= [password] and'$ pass'= [用户名]; 

它很好...


Im using WAMP sever PHP 5.3.4 and sql server 2008 r2 connect using the driver odbc driver 2011 When i execute this query i got the correct answer,

SELECT [password],[username] FROM [customer]

But having an error While execute the below query,i checked the same query in the sqlserver it gave me the result corrcetly

SELECT [password],[username] FROM customer Where $name=[password] and $pass=[username]

This is what the error im getting

A PHP Error was encountered

Severity: Warning

Message: odbc_exec(): SQL error: [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Executing SQL directly; no cursor., SQL state 01000 in SQLExecDirect

Filename: models/general_account.php

Line Number: 18

UPDATE:

function login($name,$pass)
{
var_dump($name);
var_dump($pass);        
$this->load->database();
$conn=odbc_connect('odbcconnection','sa','sa') or die ('error');
$sql='SELECT [password],[username] FROM customer Where $name=[password] and $pass=[username]';          
$rs=odbc_exec($conn,$sql) or die('exe error');            
odbc_close($conn); 
}    

Thanks in Advance.

解决方案

Its a silly mistake made by myself,

$sql='SELECT [password],[username] FROM customer Where $name=[password] and $pass=[username]';  

i just print the sql query stored in $sql variable and run that query on the MSSQL Server, the query comes likes this,

SELECT [password],[username] FROM customer Where asd=[password] and asd123=[username]

but in sql server we need to give the string in the quotes

$sql="SELECT [password],[username] FROM customer Where '$name'=[password] and '$pass'=[username]";

And it woks fine...

这篇关于直接执行SQL;无游标,SQL状态01000在SQLExecDirect的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆