为什么我的数据没有提交到我的数据库中?

时间:2015-04-28 04:59:15

标签: php sql database-connection

我需要将一个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
?>

3 个答案:

答案 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。“)”;