尝试将数据插入数据库时​​出错。简单的形式

时间:2014-12-04 14:13:03

标签: php html mysql database

我是PHP的新手我已经整理了一个简单的表单来将数据输入到数据库中,但数据似乎并没有插入到数据库中。我一直试图让它整天都在工作。 显示错误在代码末尾插入数据库时​​出错。


HTML


<div id="wrapper">

        <section id="top_area">

            <article class="box-right">

                    <form action="script/data.php" method="post">

                        <p> 
                            <label>Company Name:</label>
                            <input name="company_name" required="required" placeholder="Joes Cleaners" type="text">
                        </p>

                        <p> 
                            <label>Ref:</label>
                            <input name="ref_num" required="required" placeholder="D123" type="text">
                        </p>

                        <p> 
                            <label>Website:</label>
                            <input name="website" required="required" placeholder="joescleaner.co.uk" type="text">
                        </p>

                        <p> 
                            <label>Email:</label>
                            <input name="email" required="required" placeholder="joescleanersm@gmail.com" type="email"> 
                        </p>

                        <p> 
                            <label>Telephone:</label>
                            <input name="tel" required="required" placeholder="0712345678" type="number"> 
                        </p>

                        <p> 
                            <label>Message:</label>
                            <input name="message" required="required" placeholder="hello" type="text"> 
                        </p>



                        <p> 
                            <input value="Submit" type="submit"> 
                        </p>      

                    </form>

            </article>

        </section>

    </div>

PHP


<?php
$db_hostname = 'localhost';
$db_database = 'form';
$db_username = 'user';
$db_password = 'password';

// Connect to server.
$db_server = mysql_connect($db_hostname, $db_username, $db_password)
    or die("Unable to connect to MySQL: " . mysql_error());

// Select the database.
mysql_select_db($db_database)
    or die("Unable to select database: " . mysql_error());

// Select the database.
mysql_select_db("form")
    or die("Unable to select database: " . mysql_error());

// Get values from form
$company_name       = $_POST['company_name'];
$ref_num      = $_POST['ref_num'];  
$website        = $_POST['website'];    
$email       = $_POST['email'];
$tel    = $_POST['tel']; 
$message    = $_POST['message'];



// Insert data into mysql
$sql="INSERT INTO users (company_name, ref_num, website, email, tel, message)
VALUES ('$company_name', '$ref_num', '$website', '$email', $tel, $message, NOW())";
$result = mysql_query($sql); 

// if successfully insert data into database, displays message "Successful".
if($result){
header('Location: ../thankyou.php');
}
else {
echo "Error to Inserting into database";
}

// close mysql
mysql_close();
?> 

3 个答案:

答案 0 :(得分:0)

您应该开始使用PDO进行数据库访问,不推荐使用mysql_query

PDO让你做好准备好的陈述。这些都是针对SQL注入的(您的代码不是)。

$stmt = $dbh->prepare("INSERT INTO users (company_name, ref_num, website, email, tel, message) VALUES (:company_name, :ref_num, :website, :email, :tel, :message, NOW())");
$stmt->bindParam(':company_name', $company_name);
$stmt->bindParam(':ref_num', $ref_num);
// And bind the remaining parameters
[...]
$stmt->execute();

如果失败,您可以通过运行

获取详细信息
print_r($stmt->errorInfo());

这应该可以帮助您在SQL中找到错误。

$dbh是一个新的PDO实例(请参阅PDO::__construct

答案 1 :(得分:0)

在查询中,您尝试插入多个列值。 您的查询是:

$sql="INSERT INTO users (company_name, ref_num, website, email, tel, message) VALUES ('$company_name', '$ref_num', '$website', '$email', $tel, $message, NOW())"

删除NOW()数据或添加NOW()数据的其他列

您也可以尝试以下查询。

$sql="INSERT INTO users (company_name, ref_num, website, email, tel, message) VALUES ('$company_name', '$ref_num', '$website', '$email', $tel, $message)"

答案 2 :(得分:0)

如编程学生所说的固定列错误,你应该修改你的mysql_query命令: 它需要您之前打开的数据库连接。

试试这个:

  

$ result = mysql_query($ db_server,$ sql);

为什么不尝试使用面向对象的语法?

  

if($ db_server-&gt; query($ sql)=== TRUE){

header('Location: ../thankyou.php'); } else {

echo "Error: " . $conn->error; 
     

}

}