2013-05-10 34 views
1

我試圖使用下面的代碼將.txt文件輸入到postgres數據庫中。使用PHP/PDO將.txt文件複製到Postgres中

這個SQL當我在使用pgAdminIII數據庫直接進入,但在PHP代碼中,我得到一個語法錯誤的查詢工作:

PHP Parse error: syntax error, unexpected T_STRING in D:\Apapub\public_html\databases\B13\upload_files.php on line 34 

當我從周圍像文本文件(「」)刪除所以:

$sql = 'COPY "public"."tblSedimentGrabEvent" FROM D:/Apapub/public_html/databases/B13/temp/grabevents.txt CSV'; 

我從SQL端得到一個錯誤。 任何幫助將不勝感激,顯然我是編程界的新手。

感謝

<?php 
try { 
$db = new PDO("pgsql:dbname=NAME;host=HOST","USER","PASS"); 

} 
catch(PDOException $e) { echo $e->getMessage(); 
} 

if ($_FILES["file"]["error"] > 0) 
{ 
echo "Error: " . $_FILES["file"]["error"] . "<br>"; 
} 
else 
{ 
echo "Uploaded Successfully!<br>"; 
echo "File Name: " . $_FILES["file"]["name"] . "<br>"; 
echo "Type: " . $_FILES["file"]["type"] . "<br>"; 
echo "Size: " . ($_FILES["file"]["size"]/1024) . " kB<br>"; 
echo "Temp file: " . $_FILES["file"]["tmp_name"]. "<br>"; 

if (file_exists("upload/" . $_FILES["file"]["name"])) 
    { 
    echo $_FILES["file"]["name"] . " already exists. "; 
    } 
    else 
    { 
    move_uploaded_file($_FILES["file"]["tmp_name"], 
    "D:/Apapub/public_html/databases/B13/temp/" . $_FILES["file"]["name"]); 
    echo "Stored in: " . "D:\Apapub\public_html\databases\B13\temp" . $_FILES["file"]["name"]. "<br>"; 
    } 

} 

$sql = 'COPY "public"."tblSedimentGrabEvent" FROM 'D:/Apapub/public_html/databases/B13/temp/grabevents.txt' CSV'; 

$resultC = $db->query($sql); 
if (!$resultC){ 
echo ('The query did not succeed<BR>'); 
echo ($sql); 

} 

?> 
+0

什麼是SQL的錯誤? – andrewsi 2013-05-10 20:08:49

+0

錯誤:在「D」處或附近的語法錯誤 第3行:COPY「tblSedimentGrabEvent」從D:/ Apapub/public_html/datab ... ^ – ASan 2013-05-10 20:10:37

回答

1

在PHP端的問題是,你不恰當地使用引號。嘗試改變

$sql = 'COPY "public"."tblSedimentGrabEvent" FROM 'D:/Apapub/public_html/databases/B13/temp/grabevents.txt' CSV'; 
               ^             ^

$sql = 'COPY "public"."tblSedimentGrabEvent" FROM "D:/Apapub/public_html/databases/B13/temp/grabevents.txt" CSV'; 

$sql = 'COPY "public"."tblSedimentGrabEvent" FROM \'D:/Apapub/public_html/databases/B13/temp/grabevents.txt\' CSV'; 
+0

錯誤:語法錯誤處於或接近「」D:/ Apapub/public_html /數據庫/ B13 /溫度/ grabevents.txt 「」 LINE 3:COPY 「tblSedimentGrabEvent」 FROM「d:/ Apapub /的public_html /數據... ^^ – ASan 2013-05-10 20:23:52

+0

上述更改後的錯誤^ – ASan 2013-05-10 20:24:31

+0

謝謝您 最後一行。你可以解釋爲什麼前後斜槓爲未來參考而工作嗎? – ASan 2013-05-10 20:41:46

相關問題