Forum Moderators: open
$feed = gzopen("2613_1600216_mp.txt.gz","r");
if (!$feed) {
die('file open failed: ' . mysql_error());
}
if ($feed) { echo 'file opened';}
mysql_query("drop table example_temp");
mysql_query("CREATE TABLE example_temp (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
prod_id varchar(100) NOT NULL default '',
prod_name varchar(100) NOT NULL default '',
sku varchar(40) NOT NULL default '',
prim_cat varchar(50) NOT NULL default '',
prod_url varchar(255) NOT NULL default '',
prod_image_url varchar(255) NOT NULL default '',
buy_url varchar(255) NOT NULL default '',
prod_desc blob NOT NULL,
price varchar(6) NOT NULL default '0.00'
)") or die(' create table failed: ' . mysql_error());
$rowNum = 0;
$recCount = 0;
while($data = fgetcsv($feed, 30000, "¦")){
if($rowNum > 0){
$prod_id = mysql_real_escape_string($data[0]);
$prod_name = mysql_real_escape_string($data[1]);
$sku = mysql_real_escape_string($data[2]);
$prim_cat = mysql_real_escape_string($data[3]);
$prod_url = mysql_real_escape_string($data[5]);
$prod_image_url = mysql_real_escape_string($data[6]);
$buy_url = mysql_real_escape_string($data[7]);
$prod_desc = mysql_real_escape_string($data[8]);
$price = mysql_real_escape_string($data[13]);
$sql = mysql_query("INSERT DELAYED INTO example_temp SET
prod_id = '$prod_id',
prod_name = '$prod_name',
sku = '$sku',
prim_cat = '$prim_cat',
prod_url = '$prod_url',
prod_image_url = '$prod_image_url',
buy_url = '$buy_url',
prod_desc = '$prod_desc',
price = '$price'
;") or die(' insert failed: ' . mysql_error());
$recCount++;
}
$rowNum++;
}
$drop = "DROP TABLE example";
mysql_query($drop);
if (!$drop) {die('drop failed: ' . mysql_error());}
if ($drop) {echo 'drop example successful<br>';}
$alter = "ALTER TABLE example_temp RENAME example, ADD FULLTEXT (prod_name), ADD FULLTEXT (prod_desc);";
mysql_query($alter);
if (!$alter) {die('alter failed: ' . mysql_error());}
if ($alter) {echo 'alter successful<br>';}
gzclose ($feed);
$drop = "DROP TABLE example";
mysql_query($drop);
if (!$drop) {die('drop failed: ' . mysql_error());}
if ($drop) {echo 'drop example successful<br>';}
$alter = "ALTER TABLE example_temp RENAME example, ADD FULLTEXT (prod_name), ADD FULLTEXT (prod_desc);";
mysql_query($alter);
if (!$alter) {die('alter failed: ' . mysql_error());}
if ($alter) {echo 'alter successful<br>';}
Above, you define $drop as your query, then after mysql_query() you check $drop as boolean (true/false). It will always be true because $drop never changes after the mysql_query.
You need to run your if{} on the query itself:
$drop = "DROP TABLE example";
if(mysql_query($drop)){
echo 'drop example successful<br>';
} else {
die('drop failed: ' . mysql_error());
}
Sorry I cannot help on the real issue here but you could easily get false positives with your original code.
If you have access to the command line then you could try restarting mysql.
LOAD DATA INFILE is the quickest way to get a spreadsheet into a mysql DB. Check out that manual and comments online.
$sql = mysql_query("LOAD DATA INFILE 'file name' INTO TABLE example
FIELDS TERMINATED BY '¦'
LINES TERMINATED BY '\n'
SET
prod_id = '$prod_id',
prod_name = '$prod_name',
sku = '$sku',
prim_cat = '$prim_cat',
prod_url = '$prod_url',
prod_image_url = '$prod_image_url',
buy_url = '$buy_url',
prod_desc = '$prod_desc',
price = '$price'
;") or die(' insert failed: ' . mysql_error()); Thanks,
Steve.
Thanks,
Steven.