Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数组插入数据库表_Php_Arrays_Database_Insert_Save - Fatal编程技术网

Php 将数组插入数据库表

Php 将数组插入数据库表,php,arrays,database,insert,save,Php,Arrays,Database,Insert,Save,我是php新手,我在数据库和数组中练习。我的数据库中有两个表。我能够在我的一个表中获取数据并将其保存在一个数组中。现在我要做的是将数组中的数据保存到另一个表中 我的阵列是多维的: 数组([0]=>Array([recNAME]=>NAME1[公司]=>address1[地址1]=>address1[地址2]=>CITY1[省]=>CITY1[省]=>PROVINCE1[邮政编码]=>0[联系人编号]=>926XXXXX[电子邮件]=>XXXXX@yahoo.com[商品]=>COMMODITY1

我是php新手,我在数据库和数组中练习。我的数据库中有两个表。我能够在我的一个表中获取数据并将其保存在一个数组中。现在我要做的是将数组中的数据保存到另一个表中

我的阵列是多维的:

数组([0]=>Array([recNAME]=>NAME1[公司]=>address1[地址1]=>address1[地址2]=>CITY1[省]=>CITY1[省]=>PROVINCE1[邮政编码]=>0[联系人编号]=>926XXXXX[电子邮件]=>XXXXX@yahoo.com[商品]=>COMMODITY1[类型]=>[重量]=>0[长度]=>0[宽度]=>0[高度]=>0[日期]=>0[规格]=>0[发货参考]=>REF1[payMETHOD]=>CashOnDelivery[packNO]=>200XXXX-XXX[trackNO]=>200XXXX-XXX[1]=>Array([recNAME]=>NAME2[company]=>[address1]=>ADDRESS2[ADDRESS2]=>[city]=>CITY2[PROVINCE2[postalCODE]=>0[contactNO]=>905xxxxx[email]=>XXXXX@hotmail.com[商品]=>COMMODITY2[类型]=>[重量]=>0[长度]=>0[宽度]=>0[height]=>0[decVAL]=>361[specINSTRUC]=>m-F,上午11点到下午6点,我在上述给定的地址,打电话或发短信给我确认[shipREF]=>200XXXXX[payMETHOD]=>CashOnDelivery[packNO]=>200XXXX-XXX[trackNO]=>200XXXX-XXX])


有什么方法可以将它保存到我的另一个表中?我搜索了一些,其中大多数是序列化的。我不知道如何将它保存到表中。请帮助。注意。

您必须创建动态字符串数组,并将每个值按公共项分解到字符串中


将生成动态字符串,然后您可以将该字符串插入到表中。

您必须创建动态字符串数组,并将每个值按公共项分解到字符串中


将生成动态字符串,然后您可以将该字符串插入到表中。

您必须创建动态字符串数组,并将每个值按公共项分解到字符串中


将生成动态字符串,然后您可以将该字符串插入到表中。

您必须创建动态字符串数组,并将每个值按公共项分解到字符串中


将生成动态字符串,然后您可以将该字符串插入表中。

Yo可以使用php方法生成值的可存储表示形式。当您从数据库获取数据时,使用php方法生成值的可存储表示形式。当您从数据库获取数据时,使用可以使用php方法生成值的可存储表示形式。当您从数据库获取数据时,可以使用php方法生成值的可存储表示形式。当您从数据库获取数据时,可以使用php方法生成值的可存储表示形式。

您必须编写一个查询来实现这一点,当然您必须循环数组

当然,有更好的方法来实现这一点,但对于简单的练习,我建议你们这样做,你们有很多的弦乐切割等等

在执行代码之前,使用echo$query测试代码的结果

工作示例可能如下所示:

$query = "INSERT INTO myTable (`name`, `company`, `adress_1`) VALUES (";

foreach($myArray as $data) {
    $query .= "'" . mysql_real_escape_string($data["recNAME"]) . "', ";
    $query .= "'" . mysql_real_escape_string($data["company"]) . "', ";
    $query .= "'" . mysql_real_escape_string($data["address1"]) . "'), (";
}

$query = substr($query, 0, strlen($query) - 3);

echo $query;

mysql_query($query);
最好的解决方案是编写/查找一个有用的MySQL处理程序类,该类提供简单的函数,如接受数组的插入函数

但我不确定你对OOP了解多少。 如果您理解了如何手动操作的原理,然后自己编写类,那么您肯定已经完全理解了它

然而,更复杂的方法是: 这不是一个完整的例子

class MySQL
{
    private $handle = null;
    private function connect() {
        $this->handle = mysql_connect("127.0.0.1", "user", "pass", "db");
    }

    public function execute($query) {
        if($this->handle == NULL) {
            $this->connect();
        }
        if($this->handle != NULL) {
            mysql_query($query, $this->handle);
        }
    }

    public function insert($table, $fields, $values) {
        $query = "";
        if(is_array($fields) == true && is_array($values) == true) {
            $query .= "INSERT INTO `$table` (";
            foreach($fields as $field) {
                $query .= "`$field`" . ", ";
            }
            $query = substr($query, 0, strlen($query) - 2);
            $query .= ") VALUES (";
            $count = 0;
            foreach($values as $value) {
                $query .= "'" . mysql_real_escape_string($value) . "'";
                if($count == count($fields)) {
                    $query .= ", ";
                } else {
                    $query .= "),(";
                }
                $count++;
            }
            $query = substr($query, 0, strlen($query) - 2);
        }

        if(strlen($query) > 0) {
            $this->execute($query);
            return true;
        }

        return false;
    }
}
当然,这个示例不是很完整,它只是一个简短的示例,您可以在类中存储结果、numrow和更多内容,但以下是用法:

$sql = new MySQL();
$sql->insert("myTable", array("name, "company", "adress_1"), array("guy, "company a", "street 1", "girl", "company b", "street 2"));

您必须编写一个查询来实现这一点,当然,您必须循环数组

当然,有更好的方法来实现这一点,但对于简单的练习,我建议你们这样做,你们有很多的弦乐切割等等

在执行代码之前,使用echo$query测试代码的结果

工作示例可能如下所示:

$query = "INSERT INTO myTable (`name`, `company`, `adress_1`) VALUES (";

foreach($myArray as $data) {
    $query .= "'" . mysql_real_escape_string($data["recNAME"]) . "', ";
    $query .= "'" . mysql_real_escape_string($data["company"]) . "', ";
    $query .= "'" . mysql_real_escape_string($data["address1"]) . "'), (";
}

$query = substr($query, 0, strlen($query) - 3);

echo $query;

mysql_query($query);
最好的解决方案是编写/查找一个有用的MySQL处理程序类,该类提供简单的函数,如接受数组的插入函数

但我不确定你对OOP了解多少。 如果您理解了如何手动操作的原理,然后自己编写类,那么您肯定已经完全理解了它

然而,更复杂的方法是: 这不是一个完整的例子

class MySQL
{
    private $handle = null;
    private function connect() {
        $this->handle = mysql_connect("127.0.0.1", "user", "pass", "db");
    }

    public function execute($query) {
        if($this->handle == NULL) {
            $this->connect();
        }
        if($this->handle != NULL) {
            mysql_query($query, $this->handle);
        }
    }

    public function insert($table, $fields, $values) {
        $query = "";
        if(is_array($fields) == true && is_array($values) == true) {
            $query .= "INSERT INTO `$table` (";
            foreach($fields as $field) {
                $query .= "`$field`" . ", ";
            }
            $query = substr($query, 0, strlen($query) - 2);
            $query .= ") VALUES (";
            $count = 0;
            foreach($values as $value) {
                $query .= "'" . mysql_real_escape_string($value) . "'";
                if($count == count($fields)) {
                    $query .= ", ";
                } else {
                    $query .= "),(";
                }
                $count++;
            }
            $query = substr($query, 0, strlen($query) - 2);
        }

        if(strlen($query) > 0) {
            $this->execute($query);
            return true;
        }

        return false;
    }
}
当然,这个示例不是很完整,它只是一个简短的示例,您可以在类中存储结果、numrow和更多内容,但以下是用法:

$sql = new MySQL();
$sql->insert("myTable", array("name, "company", "adress_1"), array("guy, "company a", "street 1", "girl", "company b", "street 2"));

您必须编写一个查询来实现这一点,当然,您必须循环数组

当然,有更好的方法来实现这一点,但对于简单的练习,我建议你们这样做,你们有很多的弦乐切割等等

在执行代码之前,使用echo$query测试代码的结果

工作示例可能如下所示:

$query = "INSERT INTO myTable (`name`, `company`, `adress_1`) VALUES (";

foreach($myArray as $data) {
    $query .= "'" . mysql_real_escape_string($data["recNAME"]) . "', ";
    $query .= "'" . mysql_real_escape_string($data["company"]) . "', ";
    $query .= "'" . mysql_real_escape_string($data["address1"]) . "'), (";
}

$query = substr($query, 0, strlen($query) - 3);

echo $query;

mysql_query($query);
最好的解决方案是编写/查找一个有用的MySQL处理程序类,该类提供简单的函数,如接受数组的插入函数

但我不确定你对OOP了解多少。 如果您理解了如何手动操作的原理,然后自己编写类,那么您肯定已经完全理解了它

然而,更复杂的方法是: 这不是一个完整的例子

class MySQL
{
    private $handle = null;
    private function connect() {
        $this->handle = mysql_connect("127.0.0.1", "user", "pass", "db");
    }

    public function execute($query) {
        if($this->handle == NULL) {
            $this->connect();
        }
        if($this->handle != NULL) {
            mysql_query($query, $this->handle);
        }
    }

    public function insert($table, $fields, $values) {
        $query = "";
        if(is_array($fields) == true && is_array($values) == true) {
            $query .= "INSERT INTO `$table` (";
            foreach($fields as $field) {
                $query .= "`$field`" . ", ";
            }
            $query = substr($query, 0, strlen($query) - 2);
            $query .= ") VALUES (";
            $count = 0;
            foreach($values as $value) {
                $query .= "'" . mysql_real_escape_string($value) . "'";
                if($count == count($fields)) {
                    $query .= ", ";
                } else {
                    $query .= "),(";
                }
                $count++;
            }
            $query = substr($query, 0, strlen($query) - 2);
        }

        if(strlen($query) > 0) {
            $this->execute($query);
            return true;
        }

        return false;
    }
}
当然,这个示例不是很完整,它只是一个简短的示例,您可以在类中存储结果、numrow和更多内容,但以下是用法:

$sql = new MySQL();
$sql->insert("myTable", array("name, "company", "adress_1"), array("guy, "company a", "street 1", "girl", "company b", "street 2"));

您必须编写一个查询来实现这一点,当然,您必须循环数组

当然,有更好的方法来实现这一点,但对于简单的练习,我建议你们这样做,你们有很多的弦乐切割等等

在执行代码之前,使用echo$query测试代码的结果

工作示例可能如下所示:

$query = "INSERT INTO myTable (`name`, `company`, `adress_1`) VALUES (";

foreach($myArray as $data) {
    $query .= "'" . mysql_real_escape_string($data["recNAME"]) . "', ";
    $query .= "'" . mysql_real_escape_string($data["company"]) . "', ";
    $query .= "'" . mysql_real_escape_string($data["address1"]) . "'), (";
}

$query = substr($query, 0, strlen($query) - 3);

echo $query;

mysql_query($query);
最好的解决办法是写/找到一个