#php #sql-server #sqlsrv
#php #sql-сервер #sqlsrv
Вопрос:
Продолжайте получать эту ошибку:
sqlsrv_execute(): предоставленный ресурс не является допустимым ресурсом ss_sqlsrv_stmt.
Попробовал использовать sqlsrv_fetch()
, sqlsrv_fetch_array()
, все дали мне ту же ошибку. Есть какие-нибудь советы по поводу того, что я упускаю или исправляю?
class mssql_db{ private $conn; private function connect(){ $serverName = "servername"; $connectionInfo = array( "Database"=gt;"mydb", "UID"=gt;"myuser", "PWD"=gt;"mypass"); $connStat = sqlsrv_connect($serverName, $connectionInfo); if ($connStat) { echo "Connection Establishedlt;br/gt;"; return $connStat; } else { echo "Connection Failedlt;br/gt;"; die( print_r( sqlsrv_errors(), true)); } } private function disconnect(){ // sqlsrv_close($conn); } public function getContent($query){ $idRecord = 1; $stmt = sqlsrv_prepare( $this-gt;connect(), $query, array(amp;$idRecord)); if( !$stmt ) { die( print_r( sqlsrv_errors(), true)); } echo $stmt; die(); if( sqlsrv_execute( $stmt ) === false ) { die( print_r( sqlsrv_errors(), true)); } } } $db = new mssql_db(); $query = "SELECT * FROM TestTable WHERE RecordID = ?"; $db-gt;getContent($query);
Комментарии:
1. Попробуйте назначить ресурс подключения переменной и передать эту переменную в
sqlsrv_prepare()
:$conn = $this-gt;connect(); $stmt = sqlsrv_prepare($conn, $query, array(amp;$idRecord));
. Или, что еще лучше, назначьте ресурс подключения частному$conn
члену вашего класса.