question

Como corrigir este erro "PHP Fatal error: chamar a funcao indefinida mssql_query()"?

Estou usando o code igniter e tentando configurá-lo com MS SQL, mas estou recebendo este erro:

PHP Fatal error: chamar a função mssql_query()

Eu estou usando

CodeIgniter – 2.1.3
XAMPP – PHP (5.4.7), Apache (2.4)
MSSQL - edição MS SQL Express 2008 R2
Drivers do SQL: php_pdo_sqlsrv_54_ts.dll, php_sqlsrv_54_ts.dll

Também tenho configurado o Database na pasta config
$active_group = 'default';
$active_record = TRUE;

$db ['default'] ['hostname'] = 'PHEDRATECH-PC\SQLEXPRESS';
$db ['default'] ['username'] = 'sa';
$db ['default'] ['senha'] = 'taurus';
$db ['default'] ['database'] = 'msci';
$db ['default'] ['dbdriver'] = 'sqlsrv';
$db ['default'] ['dbprefix'] = ';
$db ['default'] ['pconnect'] = TRUE;
$db ['default'] ['db_debug'] = TRUE;
$db ['default'] ['cache_on'] = FALSE;
$db ['default'] ['cachedir'] = ';
$db ['default'] ['char_set'] = 'utf8';
$db ['default'] ['dbcollat'] = 'utf8_general_ci';'
$db ['default'] ['swap_pre'] = ';
$db ['default'] ['autoinit'] = TRUE;
$db ['default'] ['stricton'] = FALSE;

É o código de consulta

$server = 'PHEDRATECH-PC\SQLEXPRESS';

/ / Connect para MSSQL
$link = mssql_connect ($server, 'sa', ' touro') or die ('algo deu errado ao conectar o MSSQL');

//Send um select consulta para MSSQL
$query = mssql_query (' selecione de [msci]. [dbo].[Funcionários]');

/ / Verificar se havia algum registro
se (! mssql_num_rows($query)) {
Não Echo 'Nenhum registro encontrado';
} {mais
/ / O seguinte é igual ao código abaixo:
//
/ / enquanto ($row = {mssql_fetch_row($query))

enquanto ($row = mssql_fetch_array ($query, MSSQL_NUM)) {
// ...
Echo"<pre>

Echo"</pre>";
}
}

/ / Free resultado da consulta
/ / Fechar o link para MSSQL
mssql_close($link);

também por favor, note que estou recebendo erro de mssql_query() indefinido
resposta Resposta
Para corrigir esse erro, você deve começar por verificar se os drivers do PHP necessários para conectar ao MS SQL Server estão instalados corretamente. Verifique se os drivers do SQL não só estão na pasta ext do PHP, mas também adicionados ao php.ini. Abra o arquivo php.ini e procure por `extension=php_pdo_sqlsrv_54_ts.dll` e `extension=php_sqlsrv_54_ts.dll`. Garanta que ambos estão descomentados, ou seja, não possuem um ponto e vírgula ";" no início da linha, e reinicie o Apache para aplicar as alterações. Isso garante que os drivers estejam carregados corretamente.

Após verificar os drivers do PHP, precisamos verificar o código do CodeIgniter. No arquivo de configuração database.php, as configurações precisam estar corretas. Verifique se o nome do host, usuário, senha e nome do banco de dados estão corretamente definidos. Além disso, a configuração `dbdriver` deve ser definida como `sqlsrv`, que é o driver adequado para conexão com o MS SQL Server. Certifique-se de que as configurações estejam corretas e correspondam às configurações do seu banco de dados MS SQL Express 2008 R2.

Agora, no código responsável pela conexão e consulta ao banco de dados, você deve substituir as funções mssql_connect e mssql_query por suas equivalências adequadas para o driver SQLSRV do PHP, introduzidas a partir da versão 2.0 do driver SQLSRV. No seu caso, a função `sqlsrv_connect` deve ser usada para estabelecer a conexão com o banco de dados e `sqlsrv_query` para executar a consulta.

Além disso, você precisa atualizar a forma como os resultados são tratados. Em vez de usar `mssql_fetch_array` e `mssql_num_rows`, você deve usar funções equivalentes do driver SQLSRV. Por exemplo, `sqlsrv_fetch_array` e `sqlsrv_has_rows`.

Ao fazer essas alterações, você deve ser capaz de corrigir o erro "PHP Fatal error: chamar a funcao indefinida mssql_query()" e ser capaz de conectar e realizar consultas no MS SQL Server usando o CodeIgniter. Certifique-se de realizar testes adequados para garantir que a conexão e as consultas estejam funcionando conforme o esperado.

Comentários Comentários

Guest
Gabi Pereyra na 6 Nov 2013
0
Você deve olhar em MySQL, muito mais informação na internet para corrigir erros fatais, como eu nunca usei MSSQL antes. Você poderia tentar "$query = $link-> mssql_query (' selecione * de [msci]. [dbo].[Funcionários]'); " Como pode exigir o link de conexão como um objeto de consulta. Isto não é como o MySQL funciona eu pode notar, mas é uma sugestão.


Topo da página


Home  Terms
Copyright © Accelerated Ideas 2005-2024
All rights reserved