html日期输入-> php-> sql不工作
Posted
技术标签:
【中文标题】html日期输入-> php-> sql不工作【英文标题】:html date input -> php -> sql not working 【发布时间】:2021-12-03 02:26:27 【问题描述】:嘿,我的注册表有一些问题
if(isset($_GET['register']))
$error = false;
$email = $_POST['email'];
$nachname = $_POST['nachname'];
$vorname = $_POST['vorname'];
$geburtsdatum =new DateTime( $_POST['geburtsdatum']);
$strasse = $_POST['strasse'];
$hausnummer = $_POST['hausnummer'];
$plz = $_POST['plz'];
$ort = $_POST['ort'];
$telefon = $_POST['telefon'];
$passwort = $_POST['passwort'];
$passwort2 = $_POST['passwort2'];
警告:第 17 行 C:\xampp\htdocs\project\register.php 中未定义的数组键“geburtsdatum”
之后我做了一些错误问题...
然后我想将它插入我的数据库中
if(!$error)
$passwort_hash = password_hash($passwort, PASSWORD_DEFAULT);
$statement = $pdo->prepare("INSERT INTO kunde (KEMAIL,NACHNAME,VORNAME,GEBURTSDATUM,STRASSE,HAUSNR,PLZ,ORT,TELEFON,PASSWORT)
VALUES (:kemail,:nachname,:vorname,:geburtsdatum,:strasse,:hausnummer,:plz,:ort,telefon,:passwort)");
$result = $statement->execute(array('KEMAIL' => $email,'NACHNAME' => $nachname,'VORNAME' => $vorname, 'GEBURTSDATUM' => $geburtsdatum,'STRASSE' => $strasse,'HAUSNR' => $hausnummer,'PLZ' => $plz,'ORT' => $ort,'TELEFON' => $telefon, 'passwort' => $passwort_hash));
if($result)
echo 'Du wurdest erfolgreich registriert. <a href="login.php">Zum Login</a>';
$showFormular = false;
else
echo 'Beim Abspeichern ist leider ein Fehler aufgetreten<br>';
致命错误:未捕获的错误:无法将 DateTime 类的对象转换为 C:\xampp\htdocs\project\register.php 中的字符串:60 堆栈跟踪:#0 C:\xampp\htdocs\project\register。 php(60): PDOStatement->execute(Array) #1 main 在第 60 行的 C:\xampp\htdocs\project\register.php 中抛出
问题出在这一行
$result = $statement->execute(array('KEMAIL' => $email,'NACHNAME' => $nachname,'VORNAME' => $vorname, 'GEBURTSDATUM' => $geburtsdatum,'STRASSE' => $strasse,'HAUSNR' => $hausnummer,'PLZ' => $plz,'ORT' => $ort,'TELEFON' => $telefon, 'passwort' => $passwort_hash));
这是我的数据库
请帮助也许有时间串的东西坏了,但我已经有时间在我的数据库中作为日期类型
【问题讨论】:
geburtsdatum
的表单输入是什么?或整个表格。
1.您在某处错误地命名了字段geburtsdatum
,可能在表单源中。 2. 格式化日期。 php.net/manual/en/datetime.format.php 3. 如果您在 #2 之前不修复 #1,那么日期将是“错误的”。
【参考方案1】:
似乎您正在使用 DateTime 对象,但 mysql 不能接受对象作为输入。因此,您可能需要将 DateTime 对象 ($geburtsdatum) 转换为 MySQL 日期类型的格式,即 YYY-MM-DD 格式。
$date = new DateTime( $_POST['geburtsdatum']);
$geburtsdatum = $date->format('Y-m-d');
我希望这能解决您的问题。欲了解更多信息,请查看php datetime formats、php datetime object 和 MySQL Date type
【讨论】:
以上是关于html日期输入-> php-> sql不工作的主要内容,如果未能解决你的问题,请参考以下文章