vediamo di chiarire:
Se tu in una istruzione create table metti la condizione IF NOT EXISTS dai a mysql due possibilita':
1) creare la tabella
2) non crearla perche' gia' esiste.
in entrambi i casi non si verifica un errore per il semplice fatto che esegue con successo la tua istruzione.
Per quanto riguarda la gestione degli errori prova il seguente script.... eseguilo piu' volte e/o cambia il nome della tabella per vedere che cosa succede
Codice PHP:
<?php
mysql_connect('localhost', 'tuo_user', 'tua_pwd');
mysql_select_db('test');
$nome_tab = 'test1';
$query = "
create table $nome_tab (
id int(4) unsigned not null auto_increment primary key,
ciccio varchar(100) default ''
) ";
$res = mysql_query($query);
if(!$res) {
exit("la tabella con nome $nome_tab è già presente." );
} else {
echo "la tabella con nome $nome_tab è stata creata"; }
?>
mi pare ovvio che se la tabella esiste e tu continui lo script l'insert inserira' "giustamente" i record nella tabella esistente. Non fa altro di meno di quanto gli chiedi. Se e' un errore la tabella gia' esistente devi fermare lo script.