Всем, доброго времени!
Решил автоматизировать загрузку из массива PHP в БД, но столкнулся с проблемой, не работает цикл. Никак не выгружается правильно несколько позиций из одного массива, помогите советом или решением.
Если можно как то проще подобную задачу автоматизировать буду рад предложениям.
CODE:
$arr = Array ( [0] => qwe [1] => qwe-rtyu-iop );
$qq = count ($arr); //2
For ($i=0;$i<$qq;$i++ ){
include("./includs/db.php");
$ee = array('ID' => $i, 'Name'=> $arr [$i]);
$data = $ee;
insertArr("`My db` . `My table`", $data);
}
Результат кода:
Array ( [ID] => 0 [Name] => qwe )
Fatal error: Cannot redeclare insertArr() (previously declared in .\includs\db.php:35) in .\includs\db.php on line 44
Необходимый результат в БД:
Array ( [ID] => 0 [Name] => qwe )
Array ( [ID] => 1 [Name] => qwe-rtyu-iop )
Connect: dbSettings.php$dbInfo = array(
'host' => "server",
'user' => "user",
'pass' => "pass"
);
Function data_base: db.php<?PHP
/**
* Class to initiate a new MySQL connection based on $dbInfo settings found in dbSettings.php
*
* @example
* $db = new database(); // Initiate a new database connection
* mysql_close($db->get_link());
*/
class database{
protected $databaseLink;
function __construct(){
include "dbSettings.php";
$this->database = $dbInfo['host'];
$this->mysql_user = $dbInfo['user'];
$this->mysql_pass = $dbInfo['pass'];
$this->openConnection();
return $this->get_link();
}
function openConnection(){
$this->databaseLink = mysql_connect($this->database, $this->mysql_user, $this->mysql_pass);
}
function get_link(){
return $this->databaseLink;
}
}
/**
* Insert an associative array into a MySQL database
*
* @example
* $data = array('field1' => 'data1', 'field2'=> 'data2');
* insertArr("databaseName.tableName", $data);
*/
function insertArr($tableName, $insData){
$db = new database();
$columns = implode(", ",array_keys($insData));
$escaped_values = array_map('mysql_real_escape_string', array_values($insData));
foreach ($escaped_values as $idx=>$data) $escaped_values[$idx] = "'".$data."'";
$values = implode(", ", $escaped_values);
$query = "INSERT INTO $tableName ($columns) VALUES ($values)";
mysql_query($query) or die(mysql_error());
mysql_close($db->get_link());
}
?>
</spoiler>