Я использую WAMP sever PHP 5.3.4 и sql server 2008 r2 connect using драйвер odbc driver 2011 Когда я выполняю этот запрос, я получил правильный ответ,
SELECT [password],[username] FROM [customer]
Но с ошибкой. Выполняя приведенный ниже запрос, я проверил тот же запрос в sqlserver, он дал мне результат corrcetly
SELECT [password],[username] FROM customer Where $name=[password] and $pass=[username]
Это то, что ошибка
Возникла ошибка PHP
Уровень важности: предупреждение
Сообщение: odbc_exec (): ошибка SQL: [Microsoft] [драйвер ODBC 11 для SQL Server] [SQL Server] Выполнение SQL напрямую; нет курсора., Состояние SQL 01000 в SQLExecDirect
Имя файла: models / general_account.php
Номер строки: 18
ОБНОВИТЬ:
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); }
Заранее спасибо.
Его глупая ошибка, сделанная мною,
$sql='SELECT [password],[username] FROM customer Where $name=[password] and $pass=[username]';
я просто распечатываю sql-запрос, хранящийся в переменной $ sql, и запускаю этот запрос на сервере MSSQL, запрос приходит, нравится это,
SELECT [password],[username] FROM customer Where asd=[password] and asd123=[username]
но в sql-сервере нам нужно указать строку в кавычках
$sql="SELECT [password],[username] FROM customer Where '$name'=[password] and '$pass'=[username]";
И это нормально …
У меня была такая же ошибка, и это было связано с тем, что я установил новый драйвер odbc SQL Server версии 11, который был необходим для базы данных SQl Server 2014, но была другая база данных, которая была на SQL Server 2008 r2, которая по-прежнему нуждалась в более раннем драйвере SQL Server.