将HTML表单与PHPMyAdmin数据库连接

时间:2017-05-15 22:53:20

标签: php html mysql forms phpmyadmin

我在x10hosting.com上做一个测试项目,制作一个HTML表单,将文本框中的文本发送到内部数据库。我在连接x10host PHPMyAdmin和x10host代码时遇到问题。如果你能告诉我哪里出错了,我真的很感激。下面是我的代码。如果您有任何疑问,请告诉我。谢谢。

的index.php

<html>
<h2>Summary:</h2>
</p>
<form role="form" method="POST" action="process.php">
<label>Key Points</label>
<input type="text" id="keypoints" name="keypoints"/> 
</br>
<input type="submit" id="submit" name="submit"/>
</form>
</html>

process.php

<?php
//Connecting to sql db.
$connect = mysqli_connect('localhost','infinote','','infinote_bank');
mysqli_select_db($connect,'infinote_bank');
//Sending form data to sql db.
if(isset($_REQUEST['submit'])) {
mysqli_query($connect, "INSERT INTO `cornell` (keypoints) VALUES ('$_POST['keypoints']')");
echo "success!";
}
?>

1 个答案:

答案 0 :(得分:-1)

假设您的数据库配置正确,问题就在于您插入数据的方式:VALUES ('$_POST['keypoints']')

请注意,您在此处使用了四个单引号。 PHP认为字符串只要满足下一个引用即可结束,并且可能会感到困惑,认为您正在尝试插入'$_POST['。然后它会遇到keypoints']')语法错误。

幸运的是,$_POST['keypoints']已经是string,因此只需插入即可:

INSERT INTO `cornell` (keypoints) VALUES ($_POST['keypoints'])

请注意,这容易受到SQL Injection的攻击,为了避免这种情况,您应该使用参数化查询,同时验证您的用户是否未将任何恶意内容输入到表单中:

$stmt = $connect->prepare("INSERT INTO cornell (keypoints) VALUES (?))");
$stmt->bind_param("s", strip_tags(htmlspecialchars($_POST['keypoints'])));
$stmt->execute();

过滤可能比这更极端,但这应该给你一个合理的基线。

希望这有帮助! :)