1
出於某種原因,這個代碼是導致odbc_execute();
試圖打開一個文件...PHP ODBC執行所試圖打開一個文件
$file = fopen('somefile.csv', 'r');
fgetcsv($file); // Skip the first line
$data = [];
while (($line = fgetcsv($file)) != false) {
$data[] = $line;
}
fclose($file);
try {
$conn = odbc_connect("Teradata", "User", "Pass");
odbc_autocommit($conn, false);
odbc_exec($conn, 'DELETE FROM table');
foreach ($data as &$test) {
$stmt = odbc_prepare($conn, 'INSERT INTO table (experiment_code, experiment_name, variant_code, variant_name, version_number, report_start_date, report_end_date, status, transaction_date, experiment_test_id, test_manager, product_manager, pod, created_date, last_updated_date) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)');
odbc_execute($stmt, $test);
}
odbc_commit($conn);
$result = odbc_exec($conn, 'SELECT * FROM table');
odbc_result_all($result);
} catch (Exception $e) {
odbc_rollback($conn);
echo $e->getMessage();
}
這裏是剪斷,它的CSV文件...
H1225,Some random text,H1225:001.000,Control,3,02/06/2014,03/31/2014,Completed,,HMVT-1225,Some random name,Some random name,Checkout,03/31/2014 16:54,02/06/2014 16:38
H1225,Some random text,H1225:001.000,Control,3,02/06/2014,03/31/2014,Completed,,HMVT-1225,Some random name,Some random name,Checkout,03/31/2014 16:54,02/06/2014 16:38
這裏是錯誤我得到的類型......
Warning: odbc_execute(): Can't open file Control in C:\wamp\www\HEXinput\assets\php\dumpCSV.php on line 19
我得到同樣的錯誤絕對的多個版本t用不同的文件名。文件名似乎來自第3列(基於0)。另一個奇怪的是,它實際上確實插入了一些行。
最後的錯誤我得到的是...
Fatal error: Maximum execution time of 120 seconds exceeded in C:\wamp\www\HEXinput\assets\php\dumpCSV.php on line 27
我使用Teradatas ODBC驅動程序在Windows 15版本7 64位。
這可能是什麼原因造成的?
你確定這是正確的形成csv? 「一些隨機文本」看起來並不樂觀。如果包含任何',',你會拋出數組,因爲csv分析器發現「更多」字段比真正應該。 –
我相信這是..我怎麼能仔細檢查? – ChristopherStrydom
'echo count($ line)'看看所有的行是否有相同的計數。任何錯誤的解析幾乎肯定會拋棄。 –