PHP SQL Server

SQL Server

PHP

10/02/2016

Olá amigos do forum, precisando fazer um insert, mas antes o sistema deve verificar se a informação já existe no banco. Esse código está correto ou no caminho?
Estou utilizando o seguinte código para isso:


  $query1 = sqlsrv_num_rows(sqlsrv_query($conn,"select * from carros where placa = '$placa'"));
                if ($query1 == 1) {
                        echo "<script>alert('placa ja existe.');history.back();</script>";

Fernando Dolk

Fernando Dolk

Curtidas 0

Melhor post

William

William

13/02/2016

Se for somente isso não seria tão critico a não ser que um select fosse daqueles bem elaborados, aí complicaria um pouco.



kkkk.. gostei do seu senso de humor .. administro um portal com pelo menos 1000 scripts entre site e administrativos, eu iria pedir a conta se tivesse que revisar todas as instruções srsr
GOSTEI 1

Mais Respostas

Claudio Lopes

Claudio Lopes

10/02/2016

Fernando

Para o seu contesto (lendo o que está escrito) está sim, pois não sei da regra de negocio.

Contudo vai alguns pontos:

1 - Sempre após o nome da tabela utilize
with(nolock)
Pois assim, vc garante ao sqlserver que não vai alocar (travar) a tabela, sempre utilize isso principalmente nos relacionamentos.
2 - Caso seja você que esteja modelando ou modelou o banco, é bom verificar o desempenho das consultas procure por "create index sqlserver" para entender melhor
3 - Você está jogando sua query pura dentro de uma string, isso é perigoso procure por evitar sql injection
3 - Vc utiliza o PHP de forma procedural, sugiro que você procure por CRUD que ajuda e muito nas tarefas de banco, mas também procure por Orientação a Objeto e após isso um framework.
GOSTEI 0
Fernando Dolk

Fernando Dolk

10/02/2016

É bom rever alguns pontos então, correto?
GOSTEI 0
Marcio Araujo

Marcio Araujo

10/02/2016

Inclua o PDO.
GOSTEI 0
Marcio Araujo

Marcio Araujo

10/02/2016

Inclua o PDO.
GOSTEI 0
Fernando Dolk

Fernando Dolk

10/02/2016

Inclua o PDO.


Sim, incluir com certeza.
GOSTEI 0
Claudio Lopes

Claudio Lopes

10/02/2016

obrigado por incluir o PDO Marcio havia esquecido.

Fernando, creio que sim, qualquer coisa posta ai no forum, que lhe ajudamos.
GOSTEI 0
Marcio Araujo

Marcio Araujo

10/02/2016

Disponha.
Me lembrei por conta das discussões recentes no forum.
GOSTEI 0
Karine Sobral

Karine Sobral

10/02/2016

Como já foi dito, PDO facilita bastante na possivel mudança de base, correto?
GOSTEI 0
Tiago Melantonio

Tiago Melantonio

10/02/2016

Boa noite,

Altere o select * from carros where placa = '$placa' para:

select 1 from carros where placa = '$placa'

Assim não precisa pegar todos os registros ou todos os campos da tabela.

Abs.
GOSTEI 0
Fernando Dolk

Fernando Dolk

10/02/2016

Opa, melhorou! Valeu.
GOSTEI 0
William

William

10/02/2016

Como já foi dito, PDO facilita bastante na possivel mudança de base, correto?


karine isso depende muito de como foram escritas suas instruções SQL, principalmente SELECTs, pois existem instruções proprietárias de cada SGBD, veja os exemplos abaixo:

Firebird:
SELECT FIRST 1 * FROM TABELA


MySQL:
SELECT * FROM TABELA LIMIT 1


SQL SERVER:
SELECT TOP 1 * FROM TABELA


Nesse caso mesmo usando PDO vc teria que percorrer todas as instruções e acertar a instrução conforme o banco de dados que está sendo utilizado.
GOSTEI 0
Karine Sobral

Karine Sobral

10/02/2016

Se for somente isso não seria tão critico a não ser que um select fosse daqueles bem elaborados, aí complicaria um pouco.
GOSTEI 0
Fernando Dolk

Fernando Dolk

10/02/2016

Nesse caso William eu colocaria um atestado de 6 meses, kkkkkkkk
GOSTEI 0
Karine Sobral

Karine Sobral

10/02/2016

Nessas proporções William, me desculpe, mas não cogitei essa dor de cabeça. kkkkkkkk
GOSTEI 0
Fernando Dolk

Fernando Dolk

10/02/2016

William, quantas tabelas?
GOSTEI 0
William

William

10/02/2016

Mais de 100 tabelas, aproximadamente 40 procedures, algumas Views!

Um detalhe isso é para um portal, mas são 14 iguais a esse ...rsrsrsrs
GOSTEI 0
Karine Sobral

Karine Sobral

10/02/2016

Iguais?!? Mesmo?!? a estrutura do banco?
GOSTEI 0
William

William

10/02/2016

Uma coisa ou outra é diferente, mas 90% é igual!
GOSTEI 0
Fernando Dolk

Fernando Dolk

10/02/2016

Mais de 100 tabelas, aproximadamente 40 procedures, algumas Views!

Um detalhe isso é para um portal, mas são 14 iguais a esse ...rsrsrsrs


Putz William.
GOSTEI 0
Karine Sobral

Karine Sobral

10/02/2016

Mesmo assim, complicadissimo.
GOSTEI 0
POSTAR