如何使用插入记录将所有值 frow 行插入 mysql 数据库?

Posted

技术标签:

【中文标题】如何使用插入记录将所有值 frow 行插入 mysql 数据库?【英文标题】:How to insert all values frow row into mysql database using insert record? 【发布时间】: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));

【问题讨论】:

【参考方案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 中?还是什么?

以上是关于如何使用插入记录将所有值 frow 行插入 mysql 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 更快地插入数百万行的方法

如何从PHP中的URL获取多个同名参数并将所有记录插入表中

使用 LINQtoSQL 将记录的计数值插入数据库表

将 DataTable 的所有行插入到 SQL Server 表中,包括 Id 值

如何更快地将单个行插入 MySQL 表?

(Golang)将数组中的所有行插入到表中