我正在做一个我的个人项目,我接受一个名称和电子邮件,所以我创建了一个数据库:
带有“名称”和“电子邮件”列的emailtemp
PHPMyAdmin Page
HTML表单:
<form method="post" action="connect.php" class="contact100-form validate-form">
<div class="wrap-input100 m-b-10 validate-input" data-validate = "Name is required">
<input class="s2-txt1 placeholder0 input100" type="text" name="username" placeholder="Your Name">
<span class="focus-input100"></span>
</div>
<div class="wrap-input100 m-b-20 validate-input" data-validate = "Email is required: ex@abc.xyz">
<input class="s2-txt1 placeholder0 input100" type="text" name="emailAddress" placeholder="Email Address">
<span class="focus-input100"></span>
</div>
<div class="w-full">
<button class="flex-c-m s2-txt2 size4 bg1 bor1 hov1 trans-04">
Subscribe
</button>
</div>
</form>
PHP文件:
<?php
$connect = mysqli_connect("mysql.*****.net","*****","****>","emailtemp");
//Sending form data to sql db.
mysqli_query($connect,"INSERT INTO posts (customerName, customerEmail)
VALUES ('$_POST[username]', '$_POST[emailAddress]')";
?>
基于我阅读并查看的所有内容,它应该可以运行,但是在单击“订阅”后,它会显示connect.php并显示“当前无法处理此请求。
HTTP错误500“
有没有办法在后台进行此过程并停留在同一页面上并说成功?
最佳答案
http://php.net/manual/en/mysqli.prepare.php
$connect = mysqli_connect("mysql.*****.net","*****","****>","emailtemp");
if ($stmt = $mysqli_prepare($connect,"INSERT INTO posts (customerName, customerEmail) VALUES (?, ?)")) {
mysqli_stmt_bind_param($stmt, "ss", $_POST['username'],$_POST['emailAddress']);
mysqli_stmt_execute($stmt);
}