Easyphp et BD avec php

Fermé
bitar - 17 août 2007 à 16:50
 bitar - 17 août 2007 à 17:23
j'ai un probleme avec le BD quand j'ai ajouter dans la base des enregistrement grace au fichier php le temps ralenti quand il ya bcp des enregistements par exemplepour 1000 enregistement prend 5 sec mais apress le 10000 enregistement le mille enregisments (11000) prends 3 min alors mon question est ce que il ya une solution pour que easyphp ajoute les enregistrement plus vite. merci bcp

bitar

3 réponses

eric.daniel Messages postés 6 Date d'inscription vendredi 17 août 2007 Statut Membre Dernière intervention 17 août 2007 1
17 août 2007 à 17:10
Ca m'étonne un peu comme temps de réponse pour MySQL (j'ai jamais vu ca même sur une vieille machine).

Tu peux nous donner la structure de ta table et ta requête SQL d'insertion (ainsi que le PHP qui va autour, histoire de comprendre un peu le contexte de la requête) ?
0
tout d'abord le php va lire une fichier txt et chaque ligne est un enregistrement dans le ligne chaque colonne est separer par une virgule


while(file_exists($file))
{
$tab=file($file);
foreach($tab AS $premier)
{
$pdt=explode(",",$premier);
$sql_data_array = array('products_quantity' => 0,
'products_model' => $pdt[7],
'products_SKU'=> $pdt[3],
'products_price' => (int)$pdt[9],
'products_benef' => $benef,
'products_date_available' => $products_date_available,
'products_weight' => $pdt[16],
'products_status' => 1,
'products_tax_class_id' => 0,
'manufacturers_id' => $manufacturers_id,
'products_to_rss' => 1);
$sql_data_array['products_image'] = tep_db_prepare_input("s_".$pdt[3].'.jpg');
$sql_data_array['products_mimage'] = tep_db_prepare_input("m_".$pdt[3].'.jpg');
$sql_data_array['products_bimage'] = tep_db_prepare_input("b_".$pdt[3].'.jpg');
if ($action == 'insert_product')
{
$insert_sql_data = array('products_date_added' => 'now()');

$sql_data_array = array_merge($sql_data_array, $insert_sql_data);

tep_db_perform(TABLE_PRODUCTS, $sql_data_array);
$products_id = tep_db_insert_id();

tep_db_query("insert into " . TABLE_PRODUCTS_TO_CATEGORIES . " (products_id, categories_id) values ('" . (int)$products_id . "', '" . (int)$categ_id . "')");
}




ca une partie de la php
0
et les funcion sont

function tep_db_query($query, $link = 'db_link') {
global $$link, $logger;

if (defined('STORE_DB_TRANSACTIONS') && (STORE_DB_TRANSACTIONS == 'true')) {
if (!is_object($logger)) $logger = new logger;
$logger->write($query, 'QUERY');
}

$result = mysql_query($query, $$link) or tep_db_error($query, mysql_errno(), mysql_error());

if (defined('STORE_DB_TRANSACTIONS') && (STORE_DB_TRANSACTIONS == 'true')) {
if (mysql_error()) $logger->write(mysql_error(), 'ERROR');
}

return $result;
}

function tep_db_perform($table, $data, $action = 'insert', $parameters = '', $link = 'db_link') {
reset($data);
if ($action == 'insert') {
$query = 'insert into ' . $table . ' (';
while (list($columns, ) = each($data)) {
$query .= $columns . ', ';
}
$query = substr($query, 0, -2) . ') values (';
reset($data);
while (list(, $value) = each($data)) {
switch ((string)$value) {
case 'now()':
$query .= 'now(), ';
break;
case 'null':
$query .= 'null, ';
break;
default:
$query .= '\'' . tep_db_input($value) . '\', ';
break;
}
}
$query = substr($query, 0, -2) . ')';
} elseif ($action == 'update') {
$query = 'update ' . $table . ' set ';
while (list($columns, $value) = each($data)) {
switch ((string)$value) {
case 'now()':
$query .= $columns . ' = now(), ';
break;
case 'null':
$query .= $columns .= ' = null, ';
break;
default:
$query .= $columns . ' = \'' . tep_db_input($value) . '\', ';
break;
}
}
$query = substr($query, 0, -2) . ' where ' . $parameters;
}

return tep_db_query($query, $link);
}
0