Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dlaczego ten formularz rejestracyjny PHP MySQL nie działa?

Poniżej znajduje się zmodyfikowany kod z przygotowanym oświadczeniem.

Pierwszym krokiem jest połączenie z bazą danych. Aby to zrobić, musimy zdefiniować szczegóły dostępu.

// 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);

Teraz sprawdź połączenie.

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

Następnie uruchamiasz zapytanie. Pamiętaj, że ponieważ jest to Twój osobisty projekt, używam SHA1 jako hash Twojego hasła. W przypadku większego projektu polecam dalsze badania, jak zabezpieczyć swoje hasło.

Aby uruchomić zapytanie, najpierw należy je przygotować. Tak to robisz.

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

W tym miejscu przechowujesz wyciąg w $stmt zmienny. Zapytanie ma INSERT INTO po którym następuje nazwa tabeli. W twoim przypadku jest to feedback .

Następnie wypełniasz pola tabeli, które mają zostać zapisane w pierwszym nawiasie. W Twoim przypadku będzie to (user, password, email) po którym następuje VALUES .

Następnie dodajesz symbole zastępcze dla rzeczywistych wartości za pomocą (?, ?, ?) . Pamiętaj, że całkowita liczba ? musi odpowiadać całkowitej liczbie pól w poprzednim nawiasie.

Teraz musisz powiązać zmienne z tymi ? . Odbywa się to przez,

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

Pamiętaj, że "sss" to formaty przekazywanych wartości. Poniżej znajdują się formaty.

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

Musisz więc przekazać 3 wartości, więc masz 3 s , a następnie zmienne, w których będą przechowywane wartości z formularza HTML,

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

Teraz wystarczy wykonać przygotowaną instrukcję.

$stmt->execute();

To wszystko!

Poniżej znajduje się pełny kod.

// 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();

Mam nadzieję, że to pomoże.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON_MERGE_PRESERVE() – Scal wiele dokumentów JSON w MySQL

  2. Mysql zatrzymaj słowa i dopasuj

  3. Błąd 2002 Połączenie odrzucone na PHP łączącym się z MySQL działającym na MAMP

  4. Jak zwinąć wiersze do listy rozdzielanej przecinkami w zapytaniu SQL w MySql

  5. podzapytanie mysql wewnątrz LEFT JOIN