我需要将一个html表单连接到我的sql数据库,我开始使用一个简单的表单,这样我就可以理解它是如何工作的。我无法弄清楚我做错了什么。我创建了表单,php脚本和创建的数据库。每当我提交表单时,它都会将我带到一个空白页面,并且没有任何内容添加到我的数据库中。如果连接失败,我写了错误信息,但我也没看到。我在编程方面不是很先进,有人可以帮助我吗?
index1.html
<html>
<body>
<form action="info.php" method="post">
<p>Username:<input type="text" name="username" /></p>
<p>Email:<input type="text" name="email" /></p>
<input type="submit" value="Submit"/>
</form>
</body>
</html>
info.php
<?php
define('DB_NAME' , 'users' );
define('DB_USER' , 'root');
define('DB_PASSWORD' , '');
define('DB_HOST' , 'localhost');
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
//connection to host
if (!$link) {
die('Could not connect: ' . mysql_error());
}
//error if not connected to host
$db_selected = mysql_select_db(DB_NAME, $link);
//select the database
if(!$db_selected){
die('Can\'t use ' . DB_NAME . ':' . mysql_error());
}
echo 'Connected successfully';
$value = $_POST['username'];
$value2 = $_POST['email'];
$sql = "INSERT INTO guests (username, email) VALUES ('$value', '$value2')";
if(!mysql_query($sql)){
die('Error: ' . mysql_error());
}
//error check to see if connected to tables
mysql_close();
//close connection
?>
答案 0 :(得分:0)
正如我在评论中所述;您的mysql_
代码会检出,因此您可能需要使用mysqli_
或PDO,因为mysql_
函数可能无法供您使用。
如果以下mysqli_
重写不适合您,则问题会更深入,并且超出问题的范围。
使用error reporting会/应该确认。咨询&#34; Footnotes&#34;关于如何在PHP文件中使用它。
<?php
define('DB_NAME' , 'users' );
define('DB_USER' , 'root');
define('DB_PASSWORD' , '');
define('DB_HOST' , 'localhost');
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
//connection to host
if (!$link) {
die('Could not connect: ' . mysqli_error($link));
}
echo 'Connected successfully';
$value = mysqli_real_escape_string($link,$_POST['username']);
$value2 = mysqli_real_escape_string($link,$_POST['email']);
$sql = "INSERT INTO guests (username, email) VALUES ('$value', '$value2')";
if(!mysqli_query($link, $sql)){
die('Error: ' . mysqli_error($link));
}
//error check to see if connected to tables
else{
echo "Data entered";
}
mysqli_close($link);
//close connection
?>
参考文献:
<强>脚注:强>
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告应仅在暂存时完成,而不是生产。
确保您的服务器正在运行并为PHP / MySQL / Apache正确配置。
确保您的列确实VARCHAR
且足够长以容纳数据。
答案 1 :(得分:-1)
尝试此查询:
INSERT INTO guest set username=$value1,email=$value2
答案 2 :(得分:-2)
试试这个,它应该适合你。
$ sql =“INSERT INTO guest(username,email)VALUES(”。$ value。“,”。$ value2。“)”;