Matze202
Erfahrenes Mitglied
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /home/www/doc/*/www/func/user.func.php on line 45
PDOStatement::errorInfo(): Array ( [0] => HY093 [1] => [2] => )
PHP:
$stmt = $db->prepare("INSERT INTO lwp_user_log_error (ip, login-ts, login-zeitspanne, user_name, user_key, user_pass, log_error)
VALUES (:ip, :login-ts, :login-zs, :uname, :ukey, :pass, :ulogerror)");
$stmt->bindValue(":ip", $_SERVER['REMOTE_ADDR'], PDO::PARAM_STR);
$stmt->bindValue(":login-ts", $_POST['login-ts'], PDO::PARAM_INT);
$stmt->bindValue(":login-zs", login_zs(), PDO::PARAM_INT);
$stmt->bindValue(":uname", $_POST['user_name'], PDO::PARAM_STR);
$stmt->bindValue(":ukey", $_POST['user_key'], PDO::PARAM_STR);
$stmt->bindValue(":pass", md5($_POST['user_pass']), PDO::PARAM_STR);
$stmt->bindValue(":ulogerror", user_log_error('output', NULL), PDO::PARAM_STR);
$stmt->execute(); //Dies ist die Zeile 45
echo "<br>\nPDOStatement::errorInfo():\n";
$arr = $stmt->errorInfo();
print_r($arr);
Alle dieser Einträge bekommen immer Inhalte, wenn dieses Script aufgerufen wird außer dem $_POST['user_name'], welches ich auch schon ausgeklammert hatte und aus dem Prepare entfernte, aber dies brachte leider auch keine Änderung.
Wie ich bei meiner mehrstündigen Suche mal gelesen hatte, sollte dieser Fehler häufig auftreten, wenn man mit bindValue oder bindParam einen leeren Wert einbinden würde.
Leider habe ich aber kein Beispiel gefunden, wie ich dies unterbinden kann ohne große Scripte dafür zu schreiben.
Gruß Matze202.