我有一個PHP代碼,將創建一個表使用csv文件的MySQL數據庫。但是,一些列標題不被mysql讀取。 mysql會讀取查詢的唯一時間是當我添加反引號(`)。你能幫我解決我的問題嗎? :(添加反引號創建表與MySQL的CSV文件-PHP
這裏是我的代碼:
$file = 'C:\Users\user\Desktop\Sample CSV
Files\672VER.csv';
$table = '`672ver`';
// get structure from csv and insert db
ini_set('auto_detect_line_endings',TRUE);
$handle = fopen($file,'r');
// first row, structure
if (($data = fgetcsv($handle)) === FALSE) {
echo "Cannot read from csv $file";die();
}
$fields = array();
$field_count = 0;
for($i=0;$i<count($data); $i++) {
$f = strtolower(trim($data[$i]));
if ($f) {
// normalize the field name, strip to 20 chars if too long
$f = substr(preg_replace ('/[^0-9a-z]/', '_', $f), 0, 100);
$field_count++;
$fields[] = $f.' VARCHAR(500)';
}
}
$sqlcreate = "CREATE TABLE $table (" . implode(', ', $fields) . ')';
echo $sqlcreate;
這樣做:D謝謝! :)如果你不介意我問...你是什麼意思列名作爲保留字?你能舉個例子嗎? – Rukikun
列名,例如'order','select','value' ......基本上任何通常是SQL語句的一部分的單詞都被區別對待。 –
好的。當我使用反引號時,我會盡量記住這些列名稱:)感謝您的提示。 :) – Rukikun