使用fgetcsv是我今天的一项全新功能。我习惯于处理mysql,因此sql server也是一种野兽。因此,我转向你们!使用fgetcsv将数据添加到sql server中
我有下面的代码,我相信做的一切,我需要,除了采取CSV,并把它变成一个SQL表。
你们可以帮助一些示例代码,可以缓解这个问题吗?
function connect() {
if (!function_exists('sqlsrv_num_rows')) { // Insure sqlsrv_1.1 is loaded.
die ('sqlsrv_1.1 is not available');
}
/*
* Log all Errors.
*/
sqlsrv_configure("WarningsReturnAsErrors", TRUE); // BE SURE TO NOT ERROR ON A WARNING
sqlsrv_configure("LogSubsystems", SQLSRV_LOG_SYSTEM_ALL);
sqlsrv_configure("LogSeverity", SQLSRV_LOG_SEVERITY_ALL);
$conn = sqlsrv_connect('instance', array
(
'UID' => 'userName',
'PWD' => 'password',
'Database' => 'database',
'CharacterSet' => 'UTF-8',
'MultipleActiveResultSets' => true,
'ConnectionPooling' => true,
'ReturnDatesAsStrings' => true,
));
if ($conn === FALSE) {
get_last_error();
}
return $conn;
}
function query($conn, $query) {
$result = sqlsrv_query($conn, $query);
if ($result === FALSE) {
get_last_error();
}
return $result;
}
function execute ($stmt) {
$result = sqlsrv_execute($stmt);
if ($result === FALSE) {
get_last_error();
}
return $result;
}
$conn = connect();
if (($handle = fopen(getcwd().'C:\path\TASKS.csv', "r")) !== FALSE) {
while (($data = fgetcsv($handle, 10000, ",")) !== FALSE) {
$db->execute("INSERT INTO Database..table (taskID, name, active) VALUES ('{$data[1]}','{$data[2]}','{$data[3]}')");
set_time_limit(60); // reset timer on loop
}
}
与上面的代码我目前收到以下错误
未能打开流:无效的参数在C:\路径\ insertDataFGet.php上线51 51
线是$ DB->执行CSV行
样品
1,taskName1,1
2,taskName2,0
3,taskName3,0
你有什么问题?显示您尝试的代码,解释它如何不起作用,并且有人会帮助您解决问题。 – Barmar