@MrRadio_Spy

Как выгрузить массив в БД MySQL?

Всем, доброго времени!

Решил автоматизировать загрузку из массива 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>
  • Вопрос задан
  • 243 просмотра
Решения вопроса 1
@NedoKoder
Include в цикле? Это новый вид мазохизма?

Добавьте массив в базу в виде Json текста. Очень удобно потом обратно в массив переводить
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы