直接执行SQL;无游标,SQL状态01000在SQLExecDirect [英] Executing SQL directly; no cursor., SQL state 01000 in 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屋!