我是php的新手,我在数据库和数组中练习。我的数据库中有两个表。我能够在我的一个表中获取数据并将其保存在一个数组中。现在我要做的是将数组中的数据保存到我的另一个表中。
我的数组是multidime:
数组([0] =>数组([recNAME] => NAME1 [公司] => [地址1] => ADDRESS1 [地址2] => [城市] => CITY1 [省] = > PROVINCE1 [postalCODE] => 0 [contactNO] => 926XXXXX [email] => XXXXX@yahoo.com [商品] =>商品1 [类型] => [重量] => 0 [长度] => 0 [宽度] => 0 [高度] => 0 [decVAL] => 0 [specINSTRUC] => [shipREF] => REF1 [payMETHOD] => CashOnDelivery [packNO] = > 200XXXX-XXX [trackNO] => 200XXXX-XXX)[1] =>数组([recNAME] => NAME2 [公司] => [地址1] => ADDRESS2 [地址2] => [ city] => CITY2 [省] => PROVINCE2 [postalCODE] => 0 [contactNO] => 905XXXXXX [email] => XXXXX@hotmail.com [商品] =>商品2 [类型] =&gt ; [weight] => 0 [length] => 0 [width] => 0 [height] => 0 [decVAL] => 361 [specINSTRUC] =>我在上面给出的地址从MF,11 AM-6PM,打电话或发短信给我确认[shipREF] => 200XXXXX [payMETHOD] => CashOnDe制服[packNO] => 200XXXX-XXX [trackNO] => 200XXXX-XXX))
将它保存到我的另一张桌子有哪些方法?我搜索了一些,其中大部分是序列化。我不知道如何将它保存到桌面上。请帮忙。问候。
答案 0 :(得分:1)
你必须制作动态字符串数组,然后将每个值单独分解为字符串。
将生成动态字符串,然后您可以将该字符串插入表中。
答案 1 :(得分:1)
Yo可以使用php serialize方法生成值的可存储表示。当您从数据库获取数据时,请使用unserialize
答案 2 :(得分:1)
你必须编写一个查询来实现它,当然你必须循环你的数组。
有更好的方法可以达到这个目的,但是对于简单的练习我建议你这样做,你有很多字符串切割等等。
使用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;
}
}
当然这个例子不是很完整,它只是一个简短的例子,你可以在课堂上存储结果,数字等等,但是这里有一个用法:
$sql = new MySQL();
$sql->insert("myTable", array("name, "company", "adress_1"), array("guy, "company a", "street 1", "girl", "company b", "street 2"));