无法从php中的表单插入数据库中的数据

时间:2011-02-12 22:57:29

标签: php

我无法将数据插入到我的数据中,我不知道问题是什么。这是代码:

mysql_select_db("mitestore", $con); */ if ((isset($_POST['product_name'])) && (strlen(trim($_POST['product_name'])) > 0)) { $product_name = stripslashes(strip_tags($_POST['product_name'])); $sql="INSERT INTO sell (product_name) VALUE ('$_POST[product_name]')"; } else {$product_name = 'Please enter the product name.';} if ((isset($_POST[''])) && (strlen(trim($_POST['how_old'])) > 0)) { $how_old = stripslashes(strip_tags($_POST['how_old'])); $sql="INSERT INTO sell (how_old) VALUE ('$_POST[how_old]')"; } else {$how_old = 'Please enter how old your product is';} if ((isset($_POST['which_block'])) && (strlen(trim($_POST['which_block'])) > 0)) { $which_block = stripslashes(strip_tags($_POST['which_block'])); $sql="INSERT INTO sell (which_block) VALUE ('$_POST[which_block]')"; } else {$which_block = 'Please enter which block are you from';} if ((isset($_POST['room_no'])) && (strlen(trim($_POST['room_no'])) > 0)) { $room_no = stripslashes(strip_tags($_POST['room_no'])); $sql="INSERT INTO sell (room_no) VALUE ('$_POST[room_no]')"; } else {$room_no = 'Please enter the room no:';} if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } echo "Success!";

mysql_close($con) ?>

最初我有这个代码,它对我有用。

mysql_select_db("database", $con); $sql="INSERT INTO sell ( product_name, how_old , selling_price, negotiable, which_block, room_no) VALUES ('$_POST[product_name]','$_POST[how_old]','$_POST[selling_price]','$_POST[negotiable]','$_POST[which_block]','$_POST[room_no]')";

if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } echo "Your product is added."; mysql_close($con) ?>

但我不知道如何单独验证每个字段。

2 个答案:

答案 0 :(得分:0)

您有一个根本问题:您不了解关系数据库的工作方式。

您希望在商店中存储某些产品的产品名称,产品编号,房间号等。

INSERT查询在表格中创建一行。您需要将所有这些值放在一行中,因此您需要将它们全部放在一个INSERT查询中。

INSERT INTO sell (product_name, how_old, which_block, room_no) VALUES (?, ?, ?, ?)

您应该构建这一个查询然后执行它。

如果您的代码有效,它会创建一个表,其中每一行在每列中都有一个值,无法知道哪一行对应于同一产品。

答案 1 :(得分:0)

我将您的代码粘贴到我的服务器并进行了一些小修改,但基本上是相同的代码,它对我来说很好。你确实在第8行留下了一段挥之不去的评论“* /”。

另外,我建议使用MDB2库,这样你就可以进行存储过程......从注射中进行投射。

MDB2看起来像是这样的:

    $db=dbConnect();
    $q = "INSERT INTO mytable (year,name,email) VALUE (?,?,?)"; 
    $prep = $this->db->prepare($q, array('integer','text','text'));
    $res = $prep->execute(array($year,$name,$email));