Jump to content
Fórum Script Brasil
  • 0

Como mudar os parametros do insert usando PDO


fabio_siqueira
 Share

Question

Hello everyone !!

Estou estudando PDO e fiquei com uma dúvida, se alguém puder me ajudar...agradeço!!

Vou tentar explicar :-)

Usando o conceito de orientação a objeto que "reaproveita" o código já criado, eu quero fazer uma query usando bindparam() e pegando os values de uma array, cujo vou criar esse array a partir de um fgetcsv().

Até ae está + ou - td bem;

Eu queria saber se é possível que os valores desse array fossem alterados de acordo com o csv que eu selecionar e fazer apenas 1 query.

EX csv vendedor:

$filename = ($_FILES['vendedor']["tmp_name"]);
$abraArq = fopen($filename,"r");
$trunc = "truncate table senha";
$executar = $pdo->exec($trunc);
while(($row = fgetcsv($abraArq,2048,";"))!==FALSE) {
	
	$sql = "insert into vendedor (CODIGO_VENDEDOR,NOME_VENDEDOR,STATUS_VENDEDOR,SENHA_URA,DATA_EXPIRACAO) values('$row[0]','$row[2]','$row[3]','$row[7]','$row[8]')";
	$executar = $pdo->exec($sql);
	}

EX csv cliente:

$filename = ($_FILES['cliente']["tmp_name"]);
$abraArq = fopen($filename,"r");
$trunc = "truncate table senha";
$executar = $pdo->exec($trunc);
while(($row = fgetcsv($abraArq,2048,";"))!==FALSE) {
	
	$sql = "insert into cliente (CODIGO_cliente,NOME_cliente,STATUS_cliente,SENHA_URA,DATA_EXPIRACAO) values('$row[1]','$row[5]','$row[6]','$row[7]','$row[11]')";
	$executar = $pdo->exec($sql);
	}

 

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Olá Fábio!

Não sei se entendi direito...

Mas o que muda nos dois trechos de código são: o nome do $_FILES e a query de inserção.

Tente unificar os dois trechos assim:

$filename = ($_FILES['vendedor']["tmp_name"]);
$abraArq = fopen($filename, "r");
$trunc = "truncate table senha";
$executar = $pdo->exec($trunc);
while (($row = fgetcsv($abraArq, 2048, ";")) !== FALSE) {
    // defina aquery para cliente
    $sql = "insert into cliente (CODIGO_cliente,NOME_cliente,STATUS_cliente,SENHA_URA,DATA_EXPIRACAO) values('$row[1]','$row[5]','$row[6]','$row[7]','$row[11]')";
    // e somente se for arquivo de vendedor, a query será alterada
    if (isset($_FILES['vendedor'])) {
        $sql = "insert into vendedor (CODIGO_VENDEDOR, NOME_VENDEDOR, STATUS_VENDEDOR, SENHA_URA, DATA_EXPIRACAO) values('$row[0]', '$row[2]', '$row[3]', '$row[7]', '$row[8]')";
    }
    $executar = $pdo->exec($sql);
}

 

O conceito que você menciona é chamado DRY - Don't Repeat Yourself (em português: Não repita a si mesmo), é o que usamos para evitar a escrita de trechos de código iguais, veja: https://pt.wikipedia.org/wiki/Don%27t_repeat_yourself

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.1k
×
×
  • Create New...