, quando levantei a questão
. Nossa empresa desenvolveu um conjunto de software de serviço de mensagens curtas do lado SP baseado no protocolo SGIP da China Unicom para fornecer o serviço SMS China Unicom 130. Este sistema está em Windows 2000. O banco de dados utiliza Microsoft SQLServer2000 e está funcionando normalmente há algum tempo. Recentemente, para fornecer algumas informações aos usuários de mensagens curtas na WEB, é necessário ler e gravar o banco de dados SQL Server da WEB. Originalmente, o melhor parceiro do banco de dados SQL Server deveria ser o script do servidor Microsoft IIS ASP, mas. nossa empresa sempre acreditou que a estabilidade e a segurança do IIS + ASP não são satisfatórias. Espero usar scripts PHP para ler e escrever no SQL Server no Linux.
Análise do problema
Originalmente, não havia problema com a leitura e gravação de scripts PHP no SQL Server. Ele pode funcionar muito bem no Apache para Windows e Windows IIS. Geralmente, pode ser conectado através de ODBC ou SQLServer Client, que já estão prontos. no Windows. No entanto, não existem clientes ODBC e SQLServer prontos no Linux e precisamos instalá-los nós mesmos.
Resolva o problema
1. Software relacionado
freetds Fonte: ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/freetds-0.53.tgz
Este software pode conectar bancos de dados MS SQLServer e Sybase usando Linux e Unix.
2. Etapas de instalação e configuração
Etapa 1: Compilar e instalar o freetds:
Depois de obter o freetds-0.53.tgz
, cp freetds-0.53.tgz /tmp/ (copie o pacote freetds para o diretório /tmp)
cd /tmp (insira o diretório. )
tar zxvf freetds- 0.53.tgz (descompactado)
cd freetds-0.53 (entre no diretório descompactado)
./configure –prefix=/usr/local/freetds --with-tdsver=7.0
gmake (gerar Makefile, eu testei, make também pode fazer isso)
gmake install (Instalação)
Quero dizer algo sobre a configuração acima --prefix=/usr/local/freetds refere-se à instalação no diretório /usr/local/freetds --with-tdsver=. 7.0 refere-se à instalação da versão tds 7.0 (o problema mais recente é que não adicionei esse parâmetro de compilação e o resultado foi compilado para 5.0 por padrão. A porta para 5.0 se conectar ao banco de dados é 4000, não 1433 do SQL Server)
Etapa 2: Recompilar PHP4./configure
[--with-apxs --with-mysql ...] --with-sybase=/usr/local/freetds (observe que é sybase)
make
make install
Etapa 3: Configurar freetds
vi /usr/local/freetds/etc/freetds.conf
A configuração específica pode ser encontrada neste arquivo Exemplo de descrição
: (configuração típica)
[sqlserver]
host = sql_server_name_or_host_ip (nome da máquina SQLServer ou endereço IP)
port = 1433
tds version = 7.0
Neste arquivo de configuração, você pode configurar dois métodos de login no domínio do Windows ou login na conta SQLServer.
Quarta
etapa: Configure o arquivo php.ini
e encontre; extension=mssql70.so
.
Passo 5: Estabeleça uma conexão com o banco de dados em php
$link=mssql_connect("sqlserver",$your_username,$your_password) oumorra
(“não é possível conectar ao banco de dados”);
echo $link;
você obteve um número de link, parabéns, você o configurou. Se Call to undefined function: mssql_connect() aparecer, então Nota: Leia atentamente o processo de instalação e configuração acima para ver qual etapa você está errado.
Nota: O nome do sqlserver é o parâmetro do host definido em /usr/local/freetds/etc/freetds.conf. Se você escrever o endereço IP, ele será o endereço IP.
Para outras operações de banco de dados, consulte as funções mssql relacionadas
. Observe que o chinês não é suportado nas instruções SQL!!!
Etapa 6: Depuração
, encontre-o no arquivo de configuração do freetds, comente a linha dump file = /tmp. /freetds.log. Remova o ponto e vírgula na frente, execute o script de teste novamente e verifique o arquivo /tmp/freetds.log. Ele pode fornecer muitas informações de erro para ajudá-lo a solucionar o problema.
(e129)