将html表单数据插入数据库

时间:2015-06-26 04:23:14

标签: php mysql

我正在尝试将数据添加到我的数据库,但它无法正常工作,并且没有显示错误消息。

order.php:

<?php   

$con=mysqli_connect("localhost","root","","jutta");

//if form is submitted
if(isset($_POST['submit'])) { 
    $size=$_POST['shoe_sizes'];
    $qan=$_POST['quantity'];
    $details=$_POST['shipping_address'];
    $contact=$_POST['contact'];
    $date=date('Y-m-d');

    $sql="INSERT INTO orders(size, qan, address, contact, date) VALUES ($size, '$qan', '$address', '$contact', '$date')";

    $query=mysqli_query($con, $sql) or die('Query could not be connected.');

    if($query) {
        echo "success";
    }
    else {
        echo "fail.";
    }
}
?>

我的表单:

<form action='order.php' method='post'>
    <br>
    <a href='admin/product_images/$pro_image' title='$pro_title' class='MagicZoom'>
    <img src='admin/product_images/$pro_image' width='200' height='150' class='img-responsive'/></a><br>
    Name: <font style='color:#2E9AFE; text-align: center;'><b>$pro_title </b></font>
    <p><label>Price:</label> <font style='color:black; text-align: center;'><b> Rs. $pro_price </b></font></p>
    <div class='row'>
        <div class='col-sm-6'>
            <b><label>Select Size:</label> </b><select name='shoe_sizes'>
                    <option>5</option>
                    <option>6</option>
                    <option>7</option>
                    <option>8</option>
                    <option>9</option>
                </select>
                </div>
                <div class='col-sm-6'>
                <b><label>Quantity:</label> </b><select name='quantity'>
                    <option>1</option>
                    <option>2</option>
                    <option>3</option>
                    <option>4</option>
                </select></div>
        </div><hr>
    <b style='color: grey;'><label>Shipping Address: <br></b><textarea name='shipping_address' cols='25' rows='3' required /></textarea><br>
    <b><label>Contact No. :</label></b> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name='contact' type='tel' id='phone' placeholder='Your Contact Number'>
    <hr>
    <button type='submit' name='submit' class='btn btn-primary'><a href='order.php' style='color:white; text-decoration:none;'>Order Now</a></button>
</form>

它将我重定向到order.php文件而不将数据插入数据库,甚至没有任何消息只是一个空白页。

7 个答案:

答案 0 :(得分:0)

像这样使用:

$sql="INSERT INTO orders(size, qan, address, contact, date) VALUES ('".$size."', '".$qan."', '".$details."', '".$contact."', '".$date."')";

答案 1 :(得分:0)

在insert语句中,您在size变量上缺少单引号,因为它是作为字符串发布的。

$sql="INSERT INTO orders(size, qan, address, contact, date) VALUES ('$size', '$qan', '$address', '$contact', '$date')";

您还使用保留关键字日期作为订单表中的一个字段名称

答案 2 :(得分:0)

您已检索到变量:

$details=$_POST['shipping_address'];

然后将其更改为 $details ,而不是 $address

$sql="INSERT INTO orders(size, qan, address, contact, date) VALUES ($size, '$qan', '**$address**', '$contact', '$date')";

答案 3 :(得分:0)

首先,永远不要相信用户的输入。它可能使您的数据库易受攻击。始终通过mysqli_real_escape_string()转义用户的输入。您不希望数据库对黑客的攻击开放。

其次,当试图找出错误时,有几种方法可以解决这个问题。 echo您的查询,或者如果您认为查询中存在错误,您可以杀死您的脚本!这在调试代码和可能的问题时非常有效。例如,您可以使用mysqli_error()

if (!$query) {
   die(mysql_error($con)); //Kills your script and shows you the error
}

这对我来说非常有效,可以修复您的代码和数据库问题。

我看到的另一个重大错误是你插入的变量。您通过取消设置变量将空/空字符串插入数据库。为了明白我的意思,你应该echo $query。这将显示您的整个查询。

答案 4 :(得分:0)

您正在为变量$_POST['shipping_address']分配$details,但您正在将变量$address插入数据库。这会导致查询失败。

$details更改为$address,您就可以了。

答案 5 :(得分:0)

  1. 避免使用mysql_connect.Its depreciated.Use PDO连接。下面的代码用你的html测试,值插入我的数据库。
  2. $dsn = 'mysql:dbname=stackdb;host=127.0.0.1'; // give your dbname instead of stackdb and host. If running on localhost,leave it as 127.0.0.1
    $user = 'root'; //Give your username to access db.
    $password = '*****'; // Replace **** instead of password. If you dont have password, delete only the stars not the quotes.
    $dbh = new PDO($dsn, $user, $password);
    
    
    $sql = "INSERT INTO stackdba (shoeSize,quantity,shippingAddress,contact) VALUES(?,?,?,?)"; //stackdba is the table name
    $insert = $dbh ->prepare($sql);
    $insert->execute(array($_POST['shoe_sizes'],$_POST['quantity'],$_POST['shipping_address'],$_POST['contact']));
    

    如果您的数据未插入,那么如果您看到空白页面,则表示您在某处出现语法错误。

    尝试

    error_reporting('E_ALL');
    

    在你的php文件的第1行。

答案 6 :(得分:0)

首先删除放在

之间的锚标记
<button type='submit' name='submit' class='btn btn-primary'>
<a href='order.php' style='color:white; text-decoration:none;'>Order Now</a></button>

当您已经将表单操作定义为order.php时,则不需要创建锚标记。目前,当您单击该按钮时,由于锚定标签,表单将被重定向到order.php,而不会发布任何数据,这就是为什么空白页面将显示在屏幕上的原因。它看起来像:

<button type='submit' name='submit' class='btn btn-primary'>Order Now</a></button>
<br />

要进一步处理错误,请打开错误报告。