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

Proč tento registrační formulář PHP MySQL nefunguje?

Níže je upravený kód s připraveným prohlášením.

Prvním krokem je připojení k databázi. K tomu potřebujeme definovat přístupové údaje.

// Define Database Credentials
$servername = "localhost"; //Server Name
$username = "KyleHulse"; //Username to the DB
$password = "(my password)"; //Password to the DB
$dbname = "csdb1082"; //Name of the Database

// Create Database Connection
$conn = new mysqli($servername, $username, $password, $dbname);

Nyní zkontrolujte připojení.

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

Poté spusťte dotaz. Vezměte prosím na vědomí, že toto je váš osobní projekt, proto používám SHA1 jako hash vašeho hesla. Pro větší projekt doporučuji dále prozkoumat, jak zabezpečit heslo.

Chcete-li spustit dotaz, musíte jej nejprve připravit. Takto to děláte.

$stmt = $conn->prepare("INSERT INTO feedback (user, password, email) VALUES (?, ?, ?)");

V tomto uložíte výpis do $stmt variabilní. Dotaz má INSERT INTO následovaný názvem tabulky. Ve vašem případě je to feedback .

Poté vyplníte pole tabulky, která se uloží do první závorky. Ve vašem případě to bude (user, password, email) následuje VALUES .

Poté přidáte zástupné symboly pro skutečné hodnoty pomocí (?, ?, ?) . Upozorňujeme, že celkový počet ? musí odpovídat celkovému počtu polí v předchozí závorce.

Nyní musíte svázat proměnné s těmito ? . To provádí,

$stmt->bind_param("sss", $user, $password, $email);

Vezměte prosím na vědomí, že "sss" jsou formáty předávaných hodnot. Níže jsou uvedeny formáty.

i - integer
d - double
s - string
b - BLOB

Musíte tedy předat 3 hodnoty, takže máte 3 s , následované proměnnými, do kterých budete ukládat hodnoty z HTML formuláře,

$user = $_POST["user"];
$password = sha1($_POST["password"]); //simplest way to use SHA1 hash.
$email = $_POST["email"];

Nyní stačí provést připravený příkaz.

$stmt->execute();

To je ono!

Níže je celý kód.

// Define Database Credentials
$servername = "localhost"; //Server Name
$username = "KyleHulse"; //Username to the DB
$password = "(my password)"; //Password to the DB
$dbname = "csdb1082"; //Name of the Database

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$stmt = $conn->prepare("INSERT INTO feedback (user, password, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $user, $password, $email);

$user = $_POST["user"];
$password = sha1($_POST["password"]); //simplest way to use SHA1 hash.
$email = $_POST["email"];

$stmt->execute();

Doufám, že to pomůže.



  1. Jak používat virtuální index v databázi Oracle

  2. Rozdělit text sloupce na řádky (extrahovat oddělovač v závorce) ORACLE SQL

  3. Chyba formátu JSON, i když se echo shoduje s DataTables

  4. Mysql - Získejte řádek s nejnižším počtem vztahů