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

标签 php html mysql database

我是 PHP 的新手,我整理了一个简单的表单来将数据输入数据库,但数据似乎没有插入到数据库中。我一直在努力让它工作一整天。 在代码末尾显示错误 Error to Inserting into database。


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

最佳答案

您应该开始使用 PDO对于数据库访问,mysql_query 已弃用。

PDO 让您准备好陈述。这些已针对 SQL 注入(inject)进行保护(您的代码不是)。

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

关于php - 尝试将数据插入数据库时​​出错。简单的形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27296217/

相关文章:

php - 1.0000241703257e+14 如何在PHP中转换它,它应该是: 100002417032566

javascript - 自动滚动滚动条Javascript

javascript - 从Javascript中的字符串中提取以某个字符开头的单词

python - 使用 SQLalchemy 从表中获取用户列表

mysql - 使用 ruby​​ on rails 在 Ubuntu 上安装 MySQL [错误]

mysql - 如何在不使用 Rails 4 和 MySQL 运行两次的情况下执行查询并获取元素总数

php - 带进度条的 CSV 导入

PHP + MySQL : Return function only show last result

java - 如何从 Torrent Tracker 获取对等点

html - CSS Divs 不执行自动高度