2016-03-05 88 views
1

我已经在html中创建了一个表单,并且希望表单中的数据已发送到XAMMP中的mysql数据库。我创建了数据库,表和用于管理数据库和数据输入连接的connectivity.php文件,但是当我尝试时出现以下错误:如何在PHP中使用HTML表格插入MySQL中的记录

“致命错误:未捕获错误:调用未定义的函数mysql_connect ()在C:\ xampp \ htdocs \ example \ connectivity.php:8堆栈跟踪:#0 {main}引发第8行C:\ xampp \ htdocs \ example \ connectivity.php“

我发布全部我写的代码。有谁知道我错在哪里?

这里是形式的index.html

<!DOCTYPE HTML> 
<html> 

<head> 
    <title>Contact Us</title> 
    <link rel="stylesheet" type="text/css" href="style.css"> 

    <?php include("connectivity.php"); ?> 

</head> 

<body> 
    <div id="contact"> 
     <h3>Contact Us For Any Query</h3> 
     <form method="POST" action="connectivity.php"> 
      Name 
      <br> 
      <input type="text" name="name"> 
      <br> Email 
      <br> 
      <input type="text" name="email"> 
      <br> Message 
      <br> 
      <textarea rows="10" cols="50" maxlength="100" name="message"></textarea> 
      <br> 
      <input type="submit" value="Send Message"> 
     </form> 
    </div> 
</body> 

</html> 

然后用来定义数据库和表的代码:

CREATE DATABASE practice; 
USE practice; 

CREATE TABLE contact 
(
contactID INT(9) NOT NULL auto_increment, 
contactName VARCHAR(40) NOT NULL, 
contactEmail VARCHAR(40) NOT NULL, 
message VARCHAR(250) NOT NULL, 
PRIMARY KEY(contactID) 
); 

最后connectivity.php文件:

<?php 
//connecting to the database 
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()); 
//inserting Record to the database 
$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); 
?> 

PS:我安装了最新版本的XAMMP(5.6.15)

$ con = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,## TABLE NAME ##)或die(“无法连接到MySQL:”)。 mysql_error()); ('contact'mail,message)VALUES('$ name','$ email','$ message')“; $ result = mysqli_query($ con,$ query);

+1

'mysql'功能是不安全的,depracated,使用'mysqli'或'PDO 'insead – b3da

+1

你可能正在运行新版本的PHP,其中mysql_函数有蜜蜂删除。问题已经在这里解答:http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php – Miro

+1

使用mysqli或pdo – devpro

回答

1

因此,你必须使用PDO或MySQLi的。

你必须改变你的代码到这样的东西。

连接页面

<?php 


    $db = new PDO('mysql:host=localhost;dbname=practice;charset=utf8', 
        'root', 
        '', 
        array(PDO::ATTR_EMULATE_PREPARES => false, 
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); 


?> 
<?php 

if (isset($_POST['name'])) { 

    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 



    $stmt = $db->prepare("INSERT INTO `contact` (contactName,contactEmail,message) 
    VALUES (:name, :email, :message)"); 
    $stmt->bindParam(':name', $name); 
    $stmt->bindParam(':email', $email); 
    $stmt->bindParam(':message', $message); 

    $stmt->execute(); 

    echo 'added'; 

} 

?> 

主页

<!DOCTYPE HTML> 
<html> 

<head> 
<title>Contact Us</title> 
<link rel="stylesheet" type="text/css" href="style.css"> 

</head> 

<body> 
    <div id="contact"> 
     <h3>Contact Us For Any Query</h3> 
     <form method="POST" action="connectivity.php"> 
      Name 
      <br> 
      <input type="text" name="name"> 
      <br> Email 
      <br> 
      <input type="text" name="email"> 
      <br> Message 
      <br> 
      <textarea rows="10" cols="50" maxlength="100" name="message"></textarea> 
      <br> 
      <input type="submit" value="Send Message"> 
     </form> 
    </div> 
</body> 

</html> 

希望这有助于

+0

我尝试使用你的代码,但是系统给了我这个错误:致命错误:Uncaught PDOException:SQLSTATE [HY000] [2019] C:\ xampp \ htdocs \ example \ connectivity中的未知字符集。php:7堆栈跟踪:#0 C:\ xampp \ htdocs \ example \ connectivity.php(7):PDO - > __ construct('mysql:host = loca ...','root','',Array)# 1 {main}抛出在第7行C:\ xampp \ htdocs \ example \ connectivity.php上我证实了在php.ini文件中字符串extension = php_pdo.dll没有注释。 – Riccardo

+0

让我看看它 –

+0

你看看代码吗? – Riccardo

1

Firts你看到你的phpinfo:

<?php 
    phpinfo(); 
?> 

然后看到这里,php_mysql启用或禁用?

如果没有php_mysql,改变php.ini文件:如果您使用的xampp最新版本的一个 取消注释extension=php_mysql.dll

相关问题