sql >> Databáze >  >> RDS >> Mysql

Dobrý návod, jak aktualizovat databázi Mysql pomocí formuláře PHP?

Aktualizace dat může být velmi jednoduchá. Začněme formulářem, pro začátek:

<form method="post" action="submit.php">
  <input type="text" name="id" value="12" />
  <input type="text" name="value" value="Jonathan" />
  <input type="submit" />
</form>

Tento formulář odešle data na náš submit.php skript, kde s ním můžeme pracovat, a předat jej do naší databáze. Protože naše metoda formuláře je "post", všechny naše hodnoty budou odeslány prostřednictvím POST super pole v PHP (toto neplatí, pokud používáte programy pro nahrávání souborů). Tedy v rámci našeho submit.php stránku, můžeme vytisknout hodnoty ID a Value takto:

print $_POST["id"]; // the name of the HTML element is the key
print $_POST["value"]; // again, note that we use the name as the key

Při předávání hodnot odeslaných uživatelem přímo do vašich dotazů budete chtít být opatrní, takže je hezké vyčistit data pomocí funkce jako mysql_real_escape_string() :

$id = mysql_real_escape_string( $_POST["id"] );
$value = mysql_real_escape_string( $_POST["value"] );

Další věc, kterou budeme chtít udělat, je umístit je do dotazu:

$sql = "UPDATE mytable SET value = '{$value}' WHERE id = {$id}";

Nyní je vhodný čas neuvádět, že vás nedoporučuji používat tento příklad kódu v živém prostředí. Budete chtít vyhledat sql-injekce a jak se jim vyhnout. Kód, který zde uvádím, je pouze příkladem. Po zadání našich hodnot vypadá dotaz, který bude spuštěn, ve skutečnosti takto:

UPDATE mytable SET value = 'Jonathan' WHERE id = 12

Nyní, abychom to mohli spustit, musíme být připojeni k databázi.

$host = "localhost"; 
$user = "root"; 
$pass = "";
$database = "myDatabase";
$conn = mysql_connect($host, $user, $pass) or die( mysql_error() );
        mysql_select_db($database) or die( mysql_error() );

Vše, co zde děláme, je ukládání našich přihlašovacích údajů k uživatelskému účtu mysql do polí a jejich předávání do funkce připojení. Tento kód by měl být docela srozumitelný, ale pokud je to vůbec nejasné, dejte mi vědět.

Jakmile to máte, jste připraveni spustit dotaz. Pamatujte, že jsme jej uložili do pole s názvem $sql :

$result = mysql_query( $sql ) or die( mysql_error() );

A je to. Udělal jsi to! Data, za předpokladu, že se nic nestalo, jsou nyní aktualizována ve vaší databázi. Existuje mnoho způsobů, jak můžete zvýšit informace poskytované zpět uživateli prostřednictvím tohoto skriptu. Za zmínku také stojí, že budete chtít dezinfikovat svá data ještě předtím, než vůbec povolíte spuštění skriptu – pokud to nejsou přijatelná data (někdo se snaží vložit vlastní dotazy), budete je chtít vyplivnout.

Podívejte se na Funkce MySQL v dokumentaci PHP pro další dobroty a určitě se sem vraťte, až budete mít konkrétnější otázky!




  1. Mysql počítá instance podřetězce a poté seřaďte podle

  2. Jak LTRIM_ORACLE() funguje v MariaDB

  3. SQL Server podmíněný tok

  4. Tisk tabulky vodorovně namísto svislé pomocí PHP