這裏是代碼...PHP插入值到MySQL數據庫......但它的雙
function create_table($file){
global $my_prepare_sql;
$db = new PDO('myloginaccess', 'pasw');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //Error Handling
$table_to_make = basename($file,'.TXT');
// delete la table
$sql = "DROP TABLE IF EXISTS $table_to_make";
$db->exec($sql);
print("Table EXIST and DELETED.<br/>");
$db->exec($my_prepare_sql[$table_to_make]['create']);
print("Created table : $table_to_make<br/>");
$stmt = $db->prepare($my_prepare_sql[$table_to_make]['insert']) or die ('prepare FAIL');
//Lire le fichier
$handle = fopen($file, "r");
if ($handle) { print("<br/>File Open.<br/>"); }
while (($data = fgetcsv($handle)) !== FALSE) {
$nb_col = '['.count($data).'] ';
$stmt->execute($data);
}
echo 'Nombre de collonnes : '.$nb_col .'<br/>';
if (fclose($handle)) { print("File closed.<br/>");}
return $db;
}
,這是表:
//--- BUREAUX --------------------------------------------------------
$my_prepare_sql['BUREAUX']['create'] =
"CREATE TABLE BUREAUX (
CODE nvarchar (24),
FIRME_CODE nvarchar (24),
NOM_LEGAL nvarchar (80),
NO_CIVIQUE nvarchar (20),
NOM_RUE nvarchar (120),
BUREAU nvarchar (20),
MUNICIPALITE nvarchar (100),
PROVINCE nvarchar (20),
CODE_POSTAL nvarchar (12),
TELEPHONE_1 nvarchar (40),
POSTE_1 int,
TELEPHONE_2 nvarchar (40),
POSTE_2 int,
TELEPHONE_FAX nvarchar (40),
COURRIEL nvarchar (300),
SITE_WEB nvarchar (300),
DIRECTEUR_CODE nvarchar (20)
)";
$my_prepare_sql['BUREAUX']['insert'] =
"INSERT INTO BUREAUX (
CODE,
FIRME_CODE,
NOM_LEGAL,
NO_CIVIQUE,
NOM_RUE,
BUREAU,
MUNICIPALITE,
PROVINCE,
CODE_POSTAL,
TELEPHONE_1,
POSTE_1,
TELEPHONE_2,
POSTE_2,
TELEPHONE_FAX,
COURRIEL,
SITE_WEB,
DIRECTEUR_CODE)
values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
問題,表中的所有值aa,bb,bb,cc,cc是否爲aa,bb,cc,爲什麼?
這是一個令人驚訝的寫得很糟糕,並提出了一些在SO上享有盛譽的人提出的問題。 –
這不要求基本的調試嗎?在插入之前測試輸出,看看'fgetcsv()'返回什麼? –
你能告訴我什麼是壞的? @scrowler,因爲我使用PDO語法 – menardmam