PHP - 不能在数据库中存储记录

时间:2013-12-09 15:09:32

标签: php mysql

我创建了一个名为contact.htmlconnectivity.php的html文件。在contact.html内,我设置了form action="Conectivity.php"。但是,当我运行contact.html并单击发送按钮时,它应该将记录保存在我的数据库中,但是当我单击按钮时它只显示connectivity.php内的整个代码。

以下是connectivity.php中的代码:

<?php
define('DB_HOST', 'localhost');
define('DB_NAME', 'practice');
define('DB_USER','root');
define('DB_PASSWORD','');

$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error());
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error());
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];

$query = "INSERT INTO contact (contactName,contactEmail,message)VALUES('$name','$email','$message')";
$result = mysql_query($query);
if($result)
{
    echo "Successfully updated database";
} 
else
{
    die('Error: '.mysql_error($con));
}
mysql_close($con);
?>

1 个答案:

答案 0 :(得分:3)

你说“它只显示了connectivity.php中的整个代码” - 听起来你没有安装Web服务器并且看到PHP代码,因为它没有执行你的脚本。您需要安装Web服务器。

注意:如果您访问file:///foo/Connectivity.php这样的文件,您也会遇到此问题 - 必须通过HTTP才能让Web服务器执行PHP。您必须访问通过HTTP的文件,如http://localhost/Connectivity.php或任何本地服务器名称而不是localhost。

请检查您的拼写。你的问题是i set form action="conectivity.php"。您的文件名为Connectivity.php - 请确认您在<form>标记中拼写正确。

此外,don't use mysql_* - 使用MySQLi或PDO。你必须使用准备好的陈述;您当前的代码极易受到SQL注入攻击。