【问题标题】:How to insert all values frow row into mysql database using insert record?如何使用插入记录将所有值 frow 行插入 mysql 数据库?
【发布时间】:2015-10-10 03:57:57
【问题描述】:

你好,我的 php 有问题,只有行中的最后一个值被插入到 mysql 数据库中:Last value inserted from rows

mysql database only show the last value to be inserted from insert record

我希望插入的三个数据不仅是最后一个值...我该怎么做?

这是我的插入记录行为代码:

 if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
 $insertSQL = sprintf("INSERT INTO ordering (productCode, Name, paymentMethod, Quantity, TotalPrice) VALUES (%s, %s, %s, %s, %s)",
                   GetSQLValueString($_POST['productcode'], "int"),
                   GetSQLValueString($_POST['Name'], "text"),
                   GetSQLValueString($_POST['PaymentMethod'], "text"),
                   GetSQLValueString($_POST['quantity'], "int"),
                   GetSQLValueString($_POST['totalprice'], "double"));

 mysql_select_db($database_perfume_connection, $perfume_connection);
 $Result1 = mysql_query($insertSQL, $perfume_connection) or die(mysql_error());

 $insertGoTo = "member_perfume_homepage.php";
 if (isset($_SERVER['QUERY_STRING'])) {
 $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
 $insertGoTo .= $_SERVER['QUERY_STRING'];
 }
 header(sprintf("Location: %s", $insertGoTo));
}

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    请显示您发送帖子数据的 html 页面。我认为您应该必须创建一个 $_POST 变量数组,然后您可以在 php 端获取所有记录,然后您可以在表中插入所有三个记录。

    试试这个

    请查看以下链接,您可以在其中找到您的解决方案 Inserting Multiple Rows with PHP & MySQL

    【讨论】:

    • 嘿,谢谢你的回答......我不知道如何准确地显示 html 页面......因为我不太擅长 php,因为我主要只是为学校项目做这个......你能告诉我怎么做?我真的不想在星期二之前完成这项工作
    • 我试过了,但我遇到了很多错误.. + 我不明白那个解决方案,尽管把编码放在哪里..
    【解决方案2】:

    创建包含所有表列的模型。

    class OrderModel  extends BaseModel{
    
        public $id;
    // Fill here all columns
    
    
        public function __construct($data) {
            foreach ($data as $key => $value) {
                $this->$key = $value;
            }
        }
    public function get_table_name() {
    return "ordering";
    }
    }
    

    创建Base模型类并将insert方法放入该类中。

    public function insert() {
            $dbh = DB::connect();
            $object_keys = array_keys(get_object_vars($this));
            $query = "INSERT INTO " . $this->get_table_name() . " (" . implode(',', $object_keys) . ") VALUES(:" . implode(',:', $object_keys) . ");";
            $sth = $dbh->prepare($query);
            foreach ($object_keys as $key) {
                $sth->bindParam(':' . $key, $this->$key);
            }
            $sth->execute();
            $this->id = $dbh->lastInsertId();
            return TRUE;
        }
    $filtered_post = filter_input_array(INPUT_POST);
    $order = New OrderModel($filtered_post);
    $order->insert();
    
    • 使用 PDO 代替 mysql_ 函数
    • 使用过滤器函数过滤 POST 数组

    【讨论】:

    • 嘿,感谢您的回答,感谢...那么我该怎么办?我复制所有的编码并将其插入到 php 中?还是什么?
    猜你喜欢
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    相关资源
    最近更新 更多