Video Tutorial - PHP Registrierung | Loginsystem

Die Verbindungsherstellung ist die PHP-MySQL-Extension, der Rest PDO.
Kann nicht gehen.
Wenn das im Video auch so ist... :(
Die Zeile von Comfreek macht im Grunde das Gleiche.
Zugangsdaten anpassen, einfügen.
 
Hab ich die Zeile nun vor $stmt = $db->prepare($sql); gesetzt, nun erhalte ich die Fehlermeldung:

Fatal error: Call to undefined method PDOStatement::bind_param() in C:\xampp\htdocs\registration_logic.php on line 47

Och man :(
 
Ja das heißt, dass die Variable in der eigentlich das Datenbankobjekt instanziiert sein sollte nicht definiert ist.

Also irgendwo fehlt $db = new Mysqli(...); oder irgendein Script wird nicht richtig eingebunden.
 
Hm okay, irgendwie habe ich das in deinem Video-Tutorial leider nicht gefunden/übersehen.
Gibts auf deinem Blog das Tutorial nochmal in Schriftform?
EDIT: Hab`s schon :)

Hab nun BindParam korrigiert, aber gleich der nächste Fehler
Warning: PDOStatement::bindParam() expects parameter 3 to be long, string given in C:\xampp\htdocs\registration_logic.php on line 47

Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: no parameters were bound in C:\xampp\htdocs\registration_logic.php on line 49
 
Zuletzt bearbeitet:
Sorry, es gibt auch bei MySQLi eine bind_param-Funktion! (Ich bin davon ausgegangen, dass es PDO wäre.)

Das erklärt dann auch die Config-Datei.

Versuche mal folgenden Code:
PHP:
<?php 

   $mysqlhost="localhost"; 
   $mysqluser="x"; 
   $mysqlpasswd="x"; 
   $mysqldbname="x";
 
   $db = new MySQLi($mysqlhost, $mysqluser, $mysqlpasswd, $mysqldbname);
    
   $salt = "njegrngjen45344rgujiernguier756jeruige3453ruigeriugn"; 
     
?>
 
VincentVega20 hat gesagt.:
PHP:
$stmt->bind_param('sssi', $_POST['username'], $_POST['pass'], $_POST['email'], $user_ip);
  1. poste die Zeile wo das $stmt Objekt erstellt wird ($stmt = $objDB->prepare(...))!
  2. ist dein Aufruf von bind_param falsch...

Der Aufbau sollte, mMn, so sein:
PHP:
$objDB = new mysqli( /* */ );

$objStmt = $objDB->prepare( 'INSERT INTO table VALUES (?, ?, ?, ?, ?)' );

$objStmt->bind_param( 'sssi', $username, $pass, $email, $ip );

$username = $objDB->real_escape_string( $_POST['username'] );
$pass     = $objDB->real_escape_string( $_POST['pass'] );
$email    = $objDB->real_escape_string( $_POST['email'] );
$ip       = $objDB->real_escape_string( $user_ip );

$objStmt->execute();

Gruß
 
Zurück