Member 14197794 Ответов: 1

Как адаптировать код вставки для чтения/удаления/обновления


Эй, на прошлой неделе я и один из моих профессоров создали код для вставки, предоставив пользователю возможность выбрать, куда вставить, и я хочу использовать этот код для остальных функций...
У меня мало времени, пожалуйста, помогите.

КОД:

<?php
$self = $_SERVER['PHP_SELF'];
$host_name = "127.0.0.1";
$database = "visteon";
$username = "root";          
$password = "";          
$Tabela ="";

try {
$dbo = new PDO('mysql:host='.$host_name.';dbname='.$database, $username, $password);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}

// select table to insert data

if(!isset($_POST['submeterTabela']) && !isset($_POST['submeterDados'])) {
	
	$form ="<form action=\"$self\" method=\"post\">";
	
		$result = $dbo->query("SHOW TABLES");
	$form.= "<select name='Tabela' class='select_box'>";
		while ($row = $result->fetch(PDO::FETCH_NUM)) {
	$form.= "<option value='$row[0]'>$row[0]</option>";
}
	$form.= "</select>";
	$form.="<br><input type=\"submit\" name=\"submeterTabela\" value=\"Submeter\"class='button'>";
		echo($form);
}

// input data

if(isset($_POST['submeterTabela']) && !isset($_POST['submeterDados']))
{
  $Tabela=$_POST['Tabela'];
  $form ="<form action=\"$self\" method=\"post\">";
  $form.="<input type=\"hidden\" name=\"Tabela\"class='tabela1'value=\"$Tabela\"> <br>";  
  $form.="Introduz Dados<br>";  
  $sql ="SHOW columns from ".$Tabela;
  $result = $dbo->query($sql);
  while ($row = $result->fetch(PDO::FETCH_NUM)) {
   $sql1="select Campo from descritivoscampos where Tabela='".$Tabela."' and Campo='".$row[0]."';";
   $Resultado = $dbo->query($sql1);
   $linha = $Resultado->fetch(PDO::FETCH_NUM);  
   $form .= "$linha[0]";
   $form.="<input type=\"text\" name=\"$row[0]\" size=\"5\"><br>";   
  }
  $form.=" <br><input type=\"submit\" name=\"submeterDados\"class='botao'value=\"Submeter\">";
  echo($form);
}

if(isset($_POST['submeterDados']))
{
  $Tabela=$_POST['Tabela'];
  $sql ="SHOW columns from ".$Tabela;
  $result = $dbo->query($sql);
  $sql1 = "insert into $Tabela(";
  $aux=0;
  while ($row = $result->fetch(PDO::FETCH_NUM)) {
   if ($aux!=0) $sql1 .=", ";
   if ($row[0]!='id')
   {
    $sql1 .="$row[0]";  
    $aux=1; 
   }
  }
  $sql1 .=") values (";

  $result = $dbo->query($sql);
  $aux=0;
  while ($row = $result->fetch(PDO::FETCH_NUM)) {
   if ($aux!=0) $sql1 .= ", ";

   if ($row[0]!='id')
   {
	   $aa=$_POST[$row[0]];
	   $sql1 .="'$aa'";  
//$sql1 .="$row[0]";  
    $aux=1; 
   }
  }
  $sql1 .=");";
  $conn = mysqli_connect($host_name, $username, $password, $database)
	or die("Could not connect.");
  $result = mysqli_query($conn, $sql1)
	or die("Could not execute SQL query");
 if ($result) {     
	echo("Data added successfully !!");
  }	



}
?>


Что я уже пробовал:

Я попробовал это сделать и ничего не получилось:

if(isset($_POST['submeterDados']))
{
  $Tabela=$_POST['Tabela'];
  $sql ="SHOW columns from ".$Tabela;
  $result = $dbo->query($sql);
  $sql1 = "DELETE FROM'".$Tabela."' WHERE id = $Id";
}

Richard MacCutchan

- У меня мало времени, пожалуйста, помогите."
Так что именно вы хотите, чтобы мы сделали?

#realJSOP

Он должен был начать раньше.

Member 14197794

Я начал это почти месяц назад, я просто пришел сюда, потому что застрял. Это один из моих стажерских проектов

Member 14197794

Помогите мне или покажите, как его адаптировать

Gerry Schmitz

Еще немного подлизывайся к профессору.

Member 14197794

Я не могу, здесь, в Португалии, пасхальные каникулы

Gerry Schmitz

Может быть, сервер тоже в отпуске ... часы работы банкира.

Member 14197794

Ладно, тогда спасибо.

Richard Deeming

NB: Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.

PHP: SQL-инъекция - руководство пользователя[^]
РНР: Подготовленные инструкции и хранимые процедуры - руководство пользователя[^]

1 Ответов

Рейтинг:
1

Christian Graus

Не откладывайте домашнее задание на последнюю минуту.

Ваш пример не работает, потому что вы не запускаете запрос, который, по-видимому, выполняется этим кодом:

$conn = mysqli_connect($host_name, $username, $password, $database)
	or die("Could not connect.");
  $result = mysqli_query($conn, $sql1)
	or die("Could not execute SQL query");
 if ($result) {     
	echo("Data added successfully !!");