Latest web development tutorials
×

PHP curso

PHP curso PHP breve introdução PHP instalar PHP gramática PHP variável PHP echo/print PHP Tipos de dados PHP constante PHP corda PHP operadores PHP If...Else PHP Switch PHP ordem PHP Classificação de uma matriz PHP superglobais PHP While circulação PHP For circulação PHP função PHP Variáveis ​​mágicas PHP namespaces PHP Object-Oriented

PHP formulário

PHP formulário PHP Autenticação de formulários PHP formulário - campos obrigatórios PHP formulário - -mail de verificação e URL PHP instância de formulário completo PHP $_GET variável PHP $_POST variável

PHP Tutorial avançado

PHP arrays multidimensionais PHP data PHP conter PHP arquivo PHP Carregar arquivo PHP Cookie PHP Session PHP E-mail PHP segurança E-mail PHP Error PHP Exception PHP filtro PHP Filtro avançado PHP JSON

PHP 7 novos Recursos

PHP 7 novos Recursos

PHP banco de dados

PHP MySQL breve introdução PHP MySQL conexão PHP MySQL Criação de um banco de dados PHP MySQL Criar uma tabela de dados PHP MySQL inserir dados PHP MySQL Inserir dados múltiplos PHP MySQL instruções preparadas PHP MySQL ler dados PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX breve introdução AJAX PHP AJAX banco de dados AJAX XML AJAX busca em tempo real AJAX RSS Reader AJAX voto

PHP manual de referência

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP Processamento de imagem PHP RESTful

PHP MySQL preparadas demonstrações

declarações preparadas para evitar MySQL injecção é muito útil.


instruções preparadas e parâmetros encadernados

declarações preparadas para a execução de uma pluralidade de a mesma instrução SQL, e executar de forma mais eficiente.

Obras de declarações preparadas como se segue:

  1. O pré-tratamento: Criar uma declaração de modelo SQL enviada para o banco de dados. O valor do parâmetro reservados marca "?". Por exemplo:

    INSERT 
    	INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)
  2. análise de banco de dados, compilar, executar a otimização de consulta template declarações SQL, e armazena o resultado não é emitido.

  3. Execução: Finalmente, os valores dos parâmetros passados ​​para a ligação (marca "?") A aplicação, banco de dados executa as instruções. As aplicações podem ser executadas muitas vezes, se o valor do parâmetro não é o mesmo.

Em comparação com a execução direta de instruções SQL, instrução preparada tem duas vantagens principais:

  • declarações preparadas reduz drasticamente o tempo de análise, apenas uma consulta (embora as instruções são executadas).

  • parâmetros vinculados a reduzir a largura de banda do servidor, você só precisa enviar uma consulta de parâmetro em vez de toda a instrução.

  • declarações preparadas contra injeção de SQL é muito útil, porque depois de usar diferentes protocolos para enviar valores de parâmetros para garantir a legitimidade dos dados.


MySQLi preparado declarações

O exemplo a seguir usa a MySQLi em uma declaração preparada, e ligar os parâmetros correspondentes:

Exemplos (MySQLi usando instruções preparadas)

<? Php
$ Servername = "localhost";
$ Username = "username";
$ Password = "password";
$ Dbname = "myDB";

// Criar uma ligação
$ Conn = new mysqli ($ servername, $ username, $ password, $ dbname);

// Teste de conexão
if ($ conn-> connect_error) {
Die ( "A ligação falhou:" $ conn-> connect_error.);
}

// Pré-tratamento e vinculativa
$ Stmt = $ conn-> prepare ( "INSERT INTO MyGuests (nome, sobrenome, e-mail) VALUES (,,) ???");
$ Stmt-> bind_param ( "sss", $ firstname, $ sobrenome, $ email);

// Definir parâmetros e executar
$ Nome = "John";
$ Lastname = "Doe";
$ Mail = "[email protected]";
$ Stmt-> execute ();

$ Nome = "Maria";
$ Lastname = "Moe";
$ Mail = "[email protected]";
$ Stmt-> execute ();

$ Nome = "Julie";
$ Lastname = "Dooley";
$ Mail = "[email protected]";
$ Stmt-> execute ();

echo "O novo registro é inserido com sucesso";

$ Stmt-> close ();
$ Conn-> close ();
?>

Analisar cada linha de código nos seguintes exemplos:

"INSERT INTO MyGuests (nome, sobrenome, e-mail) VALUES (?,?,?)"

Em algumas instruções SQL, usamos o ponto de interrogação (?), Aqui podemos substituir o ponto de interrogação integer, string, de precisão dupla de ponto flutuante e valores booleanos.

Em seguida, vamos olhar para bind_param () função:

$ Stmt-> bind_param ( "sss", $ firstname, $ sobrenome, $ email);

Os parâmetros SQL função de ligação, e dizer o valor do parâmetro de banco de dados. "sss" tipos de dados de parâmetros de processamento de coluna para os restantes parâmetros. s personagem conta a base de dados que o parâmetro.

Há quatro tipos de parâmetros:

  • I - inteiro (inteiro)
  • d - double (duplo ponto flutuante de precisão)
  • s - string (string)
  • b - BLOB (binary large object: grandes objetos binários)

Cada parâmetro é necessário para especificar o tipo.

O parâmetro tipo de dados informa ao banco de dados, você pode reduzir o risco de injeção de SQL.

nota Nota: Se você deseja inserir dados adicionais (de entrada do usuário), a verificação dos dados é muito importante.


DOP preparado declarações em

Os exemplos a seguir usamos declarações preparadas em DOP e parâmetros de ligação:

Exemplos (DOP usando instruções preparadas)

<? Php
$ Servername = "localhost";
$ Username = "username";
$ Password = "password";
$ Dbname = "myDBPDO";

try {
$ Conn = new PDO ( "mysql: host = $ servername; dbname = $ dbname", $ username, $ password);
// Definir a excepção modo de erro PDO
$ Conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);

// parâmetros de vinculação pré-tratamento e SQL
$ Stmt = $ conn-> prepare ( "INSERT INTO MyGuests (nome, sobrenome, e-mail)
VALUES (: firstname ,: sobrenome ,: e-mail) ");
$ Stmt-> bindParam ( ': firstname', $ firstname);
$ Stmt-> bindParam ( ': sobrenome', $ sobrenome);
$ Stmt-> bindParam ( ': e-mail', $ email);

// Inserir linha
$ Nome = "John";
$ Lastname = "Doe";
$ Mail = "[email protected]";
$ Stmt-> execute ();

// Inserir outra linha
$ Nome = "Maria";
$ Lastname = "Moe";
$ Mail = "[email protected]";
$ Stmt-> execute ();

// Inserir outra linha
$ Nome = "Julie";
$ Lastname = "Dooley";
$ Mail = "[email protected]";
$ Stmt-> execute ();

echo "O novo registro é inserido com sucesso";
}
catch (PDOException $ e)
{
.. Eco $ sql "<br>" $ e-> getMessage ();
}
$ Conn = null;
?>