Can';t通过php将文本值上传到mysql

Can';t通过php将文本值上传到mysql,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,每次我提交我的网站评论时,它只会创建一个新的ID。但所有其他值都是空的,我该怎么办?我需要为名称、电子邮件和内容创建一些属性吗? HTML代码:这是错误的: // insert a row $guestName = "$guestName"; $guestContent = "$guestContent"; $guestEmail = "$guestEmail"; $stmt->execute(); 您尝试使用的变量不存在。您需要从$\u POST数组中检索表单发布的值: $gue

每次我提交我的网站评论时,它只会创建一个新的ID。但所有其他值都是空的,我该怎么办?我需要为名称、电子邮件和内容创建一些属性吗?


HTML代码:

这是错误的:

// insert a row
$guestName = "$guestName";
$guestContent = "$guestContent";
$guestEmail = "$guestEmail";
$stmt->execute();
您尝试使用的变量不存在。您需要从
$\u POST
数组中检索表单发布的值:

$guestName = $_POST['guestName'];
$guestContent = $_POST['guestContent'];
$guestEmail = $_POST['guestEmail'];
$stmt->execute();
编辑:请注意,您在每个请求上都运行此代码,即使表单未发布。您将要为以下内容添加检查:

if (isset($_POST['guestName']) && isset($_POST['guestContent']) && isset($_POST['guestEmail'])) {
    $guestName = $_POST['guestName'];
    $guestContent = $_POST['guestContent'];
    $guestEmail = $_POST['guestEmail'];
    $stmt->execute();
}

实际上,您可能希望将与保存数据库中数据有关的所有内容都放在
if
-语句中,这样您就不会在不打算使用它时打开数据库连接或准备语句。

谢谢您的帮助。我试图替换你给的代码。但该网站出现了一些错误:注意:未定义索引:第25行/var/www/htdocs/contact.php中的guestName注意:第26行/var/www/htdocs/contact.php中的未定义索引:第27行/var/www/htdocs/contact.php中的GuestMail和致命错误:未捕获异常“PDOException”,消息为“SQLSTATE”[23000]:完整性约束冲突:在/var/www/htdocs/contact.php:28堆栈跟踪:#0/var/www/htdocs/contact.php(28):PDOStatement->execute()#1{main}在第28行的/var/www/htdocs/contact.php中抛出,这是因为您在每个请求上运行此代码,而不是仅在表单实际发布时运行此代码。我已更新了我的答案。哇,太好了。非常感谢!您的HTML代码不应该是它的图像,而应该是实际代码。请分别编辑您的帖子。您已经发布了此内容这个问题已经作为一个完全重复的问题结束了。
if (isset($_POST['guestName']) && isset($_POST['guestContent']) && isset($_POST['guestEmail'])) {
    $guestName = $_POST['guestName'];
    $guestContent = $_POST['guestContent'];
    $guestEmail = $_POST['guestEmail'];
    $stmt->execute();
}