Resolvendo o erro “warning mssql_connect() unable to connect to server” ao fazer uma conexão do PHP com MS SQL Server

Muitas gente sofre para fazer o php se conectar ao MS SQL Server, mesmo depois de adicionada a biblioteca no php.ini e  php_mssql.dll liberado no extension.

Mesmo assim a conexão parece impossível, quando são retornados erros como:

Call to undefined function mssql_connect()

warning mssql_connect() unable to connect to server

O problema ao conectar o PHP com o SQL Server ocorre geralmente nas versões mais novas do SQL Server, como a 2008 e 2008 R2

A causa do problema é uma dll desatualizada, dentro da pasta do Apache/php e no próprio Windows.

A solução é bastante simples, basta substituir a dll nas pastas:

windows/system32 

apache/bin

A dll pode ser baixada no link abaixo:

http://www.dlldll.com/ntwdblib.dll_download.html

Agora é só reiniciar o serviço do apache/php e testar!

Para copiar a dll para a pasta apache/bin o serviço deve está parado.

Um dica adicional é verificar se Named Pipes through está ativo no SQL server Configuration Manager

Um exemplo de conexão do php com SQL SERVER

$dbhandle = mssql_connect(‘nome_do_servidor\SQLEXPRESS’,’username’,’password’);

$db = mssql_select_db(‘databasename’, $dbhandle);

 

 

Mudar a senha padrão do usuário postgres no PostgresSQL

Para mudar a senha padrão, você primeiro precisa logar na base de dados com o usuário postgres

Algo do tipo, lembrando que a senha padrão é ‘postgres’ sem as aspas:

$ /opt/PostgreSQL/8.4/bin/psql -U postgres -d postgres

Password:
psql (8.4.9)
Type “help” for help.postgres=#

Agora é só mudar a senha do usuario postgres com o

postgres=# ALTER USER postgres WITH PASSWORD ‘newpasswordgoeshere’;
ALTER ROLE
postgres=#

Pronto! Senha alterada!

Listar todos os meses de um ano entre duas data em php

 

Um pequeno trecho de código que ajuda a listar todos os meses do ano entre duas data!

<?php
$startDate = strtotime("$startYear/$startMonth/01");
$endDate   = strtotime("$endYear/$endMonth/01");

$currentDate = $endDate;

while ($currentDate >= $startDate) {
    echo date('Y/m',$currentDate);
    $currentDate = strtotime( date('Y/m/01/',$currentDate).' -1 month');
}

fonte:http://stackoverflow.com/questions/1449167/list-of-all-months-and-year-between-two-dates-in-php

Somar valores em uma data específica com MySQL

GROUP especifica um método bastante simples de agrupar valores com MySQL e outros gerenciadores de banco de dados, no exemplo a seguir é demonstrado como somar os valores de várias linhas de uma tabela, em uma data específica:

SELECT SUM(total) as total, data FROM venda WHERE MONTH(data_venda) = 12 GROUP BY data

A query acima soma todos os valores de todas as linhas da coluna total quando o Mês for 12, usando a função MONTH() do MySQL, e agrupa pelas datas iguais.

As funções DAY() e YEAR() também podem ser usadas com o mesmo propósito.

Na necessidade de se saber o total em um respectivo mês, por exemplo, a query a seguir por ser uma boa solução:

SELECT SUM(total) as total FROM venda WHERE MONTH(data_venda) = 12

em um ano específico:

SELECT SUM(total) as total FROM venda WHERE YEAR(data_venda) = 2013

fonte: http://www.vbmania.com.br/pages/?varModulo=Forum&varMethod=abrir&varID=362818

 

Gerando logs com CodeIgniter php

Gerar log de erros é um fator essencial quando estamos desenvolvendo uma aplicação, além de ser bastante útil para o monitoramento quando a aplicação já está em produção. Com CodeIgniter o processo é bastante simples:

Ative a geração de log no config.php no item: Error Logging Threshold

$config[‘log_threshold’] = 4;

4 para ativar todos os tipos de mensagens

A pasta padrão onde o log será armazenado é system/logs/, no entanto essa pasta pode ser alterada na variável:

$config[‘log_path’] = ”;

Alguns logs são gerados automaticamente pelo sistema, mas isso não impede você de gerar logs próprios, como registrar o valor de uma variável sempre que ela aparecer, por exemplo. Abaixo alguns exemplos de tipo de log com seus respectivos níveis que podem ser gerados manualmente:

log_message(‘error’, ‘Mensagem para o log de erro.’);

log_message(‘debug’, ‘Mensagem para o log de debug’);

log_message(‘info’, ‘Mensagem para o log de informação.’);