Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite pessoal,
Estou com o seguinte erro ao tentar realizar uma query no meu bd sql server através do php (servidor apache):
Warning: sqlsrv_query() expects parameter 1 to be resource, boolean given in E:\server\apache\htdocs\correios.php on line 15
Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -14 [code] => -14 [2] => An invalid parameter was passed to sqlsrv_query. [message] => An invalid parameter was passed to sqlsrv_query. ) ) 1
Alguém ja viu esse erro? Ja procurei no google porém até agora não achei nenhuma solução.. Segue código da conexão abaixo:
$dbhost = "999.999.999.99";
$db = "bd";
$user = "user";
$password = "password";
$conninfo = array("Database" => $db, "UID" => $user, "PWD" => $password);
$conn = sqlsrv_connect($dbhost, $conninfo);
$instrucaoSQL = "select * from extrato";
$params = array();
$options = array("Scrollable" => SQLSRV_CURSOR_KEYSET);
$consulta = sqlsrv_query($conn, $instrucaoSQL, $params, $options) or die(print_r(sqlsrv_errors()));Tem que ver o que tem exatamente na sua linha 15 para que possamos entender melhor.
Esse erro ele informa que algum parametro foi passado errado na query do SQL na linha 15.
Sabe dizer qual é a linha 15 pra gente?
De repente pode ser o IP do servidor que está incorreto, ou a porta que seja diferente.
Pode ser muitas coisas, verifica todos os dados de conexão se está correto e testa novamente.
Se o seu servidor não usar a porta 1433 que é a padrão do SQL, você deve colocar o dbhost da seguinte forma:
$dbhost = "123.456.789,(porta)";
O próprio erro diz do que se trata. Você está passando parâmetro inválido para função. Possivelmente sua variável $param que contém um array sem definição.
Já pensou em usar PDO?
a quantidade de conteúdo que você vai encontrar na web deve ser maior ;)
<?php
try {
$db = new PDO('sqlsrv:host=999.999.999.99;dbname=bd', 'user', 'password');
$stmt = $db->prepare("select * from extrato");
$stmt->execute();
$clientes = $stmt->fetchAll(PDO::FETCH_OBJ);
echo '<pre>';
print_r($clientes);
echo '</pre>';
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}>
12 horas atrás, medice99 disse:
Tem que ver o que tem exatamente na sua linha 15 para que possamos entender melhor.
Esse erro ele informa que algum parametro foi passado errado na query do SQL na linha 15.
Sabe dizer qual é a linha 15 pra gente?
De repente pode ser o IP do servidor que está incorreto, ou a porta que seja diferente.
Pode ser muitas coisas, verifica todos os dados de conexão se está correto e testa novamente.
Se o seu servidor não usar a porta 1433 que é a padrão do SQL, você deve colocar o dbhost da seguinte forma:
$dbhost = "123.456.789,(porta)";
Olá medice99,
Primeiramente obrigado pela resposta (: A linha 15 seria a linha:
$consulta = sqlsrv_query($conn, $instrucaoSQL, $params, $options) or die(print_r(sqlsrv_errors()));
O ip eu tenho certeza que esta correto pois já utilizamos esse mesmo ip pra uma outra conexão em ASP do site e a porta pelo que eu verifiquei é a 1433 mesmo.>
11 horas atrás, Alaerte Gabriel disse:
O próprio erro diz do que se trata. Você está passando parâmetro inválido para função. Possivelmente sua variável $param que contém um array sem definição.
Olá Alaerte Gabriel,
Primeiramente obrigado pela resposta. No caso eu copiei a estrutura desse código da própria wiki locaweb (e consultei o site do php também), porém pelo que estou pesquisando não parece ser esse o problema..
Aparências enganam, seja técnico.
O erro diz que sim, é parâmetro inválido.
Veja a dica do GABRIEL, seus problemas vão acabar.
que que é isso aí brodim? tendi muita coisa não