如何在PHP中使用HTML表单在MySQL中插入记录 [英] How to insert a record in MySQL with PHP with an HTML form

查看:197
本文介绍了如何在PHP中使用HTML表单在MySQL中插入记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在html中创建了一个表单,我希望表单中的数据被发送到XAMMP中的mysql数据库。我创建了数据库,表和用于管理与数据库和数据条目的连接的connectivity.php文件,但是当我尝试出现以下错误时:

致命错误:未捕获错误:调用C:\xampp\htdocs\example\connectivity.php中的未定义函数mysql_connect():堆栈跟踪:#0 {main}抛出C:\xampp\htdocs \example\connectivity.php on line 8



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



这里是表格index.html

 <!DOCTYPE HTML> 
< html>

< head>
< title>与我们联系< / title>
< link rel =stylesheettype =text / csshref =style.css>

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

< / head>

< body>
< div id =contact>
< h3>联络我们如有任何查询< / h3>
< form method =POSTaction =connectivity.php>
名称
< br>
< input type =textname =name>
< br>电子邮件
< br>
< input type =textname =email>
< br>消息
< br>
< textarea rows =10cols =50maxlength =100name =message>< / textarea>
< br>
< input type =submitvalue =发送消息>
< / form>
< / div>
< / body>

< / html>

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

  CREATE DATABASE practice; 
USE练习;

CREATE TABLE联系人

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 
//连接到数据库
define('DB_HOST','localhost');
define('DB_NAME','practice');
define('DB_USER','root');
define('DB_PASSWORD','');

$ con = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD)或者die(无法连接到MySQL:。mysql_error());
$ db = mysql_select_db(DB_NAME,$ con)或die(无法连接到MySQL:。mysql_error());
//将记录插入数据库
$ name = $ _POST ['name'];
$ email = $ _POST ['email'];
$ message = $ _POST ['message'];

$ query =插入联系人(contactName,contactEmail,message)VALUES('$ name','$ email','$ message');
$ result = mysql_query($ query);
if($ result)
{
echo成功更新数据库;
}
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 ##)or die(Failed to connect to MySQL:。mysql_error());

$ query =INSERT INTO contact(contactName,contactEmail,message)VALUES('$ name','$ email','$ message');
$ result = mysqli_query($ con,$ query);

解决方案

如果您使用的是最新版本 xampp 因此您必须使用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']; $(b


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

$ stmt-> execute();

echo'added';

}

?>

您的主页

 <!DOCTYPE HTML> 
< html>

< head>
< title>与我们联系< / title>
< link rel =stylesheettype =text / csshref =style.css>

< / head>

< body>
< div id =contact>
< h3>联络我们如有任何查询< / h3>
< form method =POSTaction =connectivity.php>
名称
< br>
< input type =textname =name>
< br>电子邮件
< br>
< input type =textname =email>
< br>消息
< br>
< textarea rows =10cols =50maxlength =100name =message>< / textarea>
< br>
< input type =submitvalue =发送消息>
< / form>
< / div>
< / body>

< / html>

希望这可以帮助您


I have created a form in html and I would like that the dataentered in the form is sent to a mysql database in XAMMP. I created the database, the table and the connectivity.php file that manages the connection to the database and data entry, but when I try I get the following error:

"Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\example\connectivity.php:8 Stack trace: #0 {main} thrown in C:\xampp\htdocs\example\connectivity.php on line 8"

I post all the code that I wrote. Does anyone know where I'm wrong?

here is the form 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>

Then the code used to define database and the table:

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)
);

Finally the connectivity.php file:

<?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);
?>

P.S: I installed the latest version of XAMMP (5.6.15)

$con=mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD,##TABLE NAME##) or die("Failed to connect to MySQL: " . mysql_error());

$query = "INSERT INTO contact(contactName,contactEmail,message)VALUES('$name','$email','$message')"; $result = mysqli_query($con,$query);

解决方案

If you are using one of the latest version of xampp therefore you have to use PDO or MySQLi .

Your have to change your codes to something like this.

Your connectivity page

<?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';

}

?>

Your home page

<!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>

Hope this helps

这篇关于如何在PHP中使用HTML表单在MySQL中插入记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆