Php MySql-joomla中的批量导入查询
我有一个文件夹,里面有100多个.txt文件,我想在我的joomla网站上把每个文件导入到一篇文章中(这样最终会有100多篇文章) 似乎最简单的方法是在我现有的mysql中导入my.txt,如下所示:Php MySql-joomla中的批量导入查询,php,mysql,sql,joomla,import,Php,Mysql,Sql,Joomla,Import,我有一个文件夹,里面有100多个.txt文件,我想在我的joomla网站上把每个文件导入到一篇文章中(这样最终会有100多篇文章) 似乎最简单的方法是在我现有的mysql中导入my.txt,如下所示: LOAD DATA LOCAL INFILE 'example.txt' INTO TABLE example_table 但是如何一次导入所有文件(批量导入)?我使用此宏(在visual basic中)将所有.txt文件导入excel工作表: '~~> Change path here
LOAD DATA LOCAL INFILE 'example.txt' INTO TABLE example_table
但是如何一次导入所有文件(批量导入)?我使用此宏(在visual basic中)将所有.txt文件导入excel工作表:
'~~> Change path here
Const sPath As String = "C:\Users\Desktop\file\"
Sub Sample()
Dim wb As Workbook
Dim ws As Worksheet
Dim MyData As String, tmpData() As String, strData() As String
Dim strFileName As String
'~~> Your requirement is of 267 files of 1 line each but I created
'~~> an array big enough to to handle 1000 files
Dim ResultArray(1000, 3) As String
Dim i As Long, n As Long
Debug.Print "Process Started At : " & Now
n = 1
Set wb = ThisWorkbook
'~~> Change this to the relevant sheet
Set ws = wb.Sheets("Sheet1")
strFileName = Dir(sPath & "\*.txt")
'~~> Loop through folder to get the text files
Do While Len(strFileName) > 0
'~~> open the file in one go and read it into an array
Open sPath & "\" & strFileName For Binary As #1
MyData = Space$(LOF(1))
Get #1, , MyData
Close #1
strData() = Split(MyData, vbCrLf)
'~~> Collect the info in result array
For i = LBound(strData) To UBound(strData)
If Len(Trim(strData(i))) <> 0 Then
tmpData = Split(strData(i), ",")
ResultArray(n, 0) = Replace(tmpData(0), Chr(34), "")
ResultArray(n, 1) = Replace(tmpData(1), Chr(34), "")
ResultArray(n, 2) = Replace(tmpData(2), Chr(34), "")
ResultArray(n, 3) = Replace(tmpData(3), Chr(34), "")
n = n + 1
End If
Next i
'~~> Get next file
strFileName = Dir
Loop
'~~> Write the array to the Excel Sheet
ws.Range("A1").Resize(UBound(ResultArray), _
UBound(Application.Transpose(ResultArray))) = ResultArray
Debug.Print "Process ended At : " & Now
End Sub
“~~~>在此处更改路径
Const sPath As String=“C:\Users\Desktop\file”
子样本()
将wb设置为工作簿
将ws设置为工作表
将MyData设置为字符串,将tmpData()设置为字符串,将strData()设置为字符串
将strFileName设置为字符串
“~~>您的要求是267个文件,每个文件有一行,但我创建了
“~~>一个足以处理1000个文件的数组
Dim ResultArray(1000,3)作为字符串
暗淡的i一样长,n一样长
Debug.Print“进程开始于:”&现在
n=1
设置wb=ThisWorkbook
“~~>将其更改为相关的工作表
设置ws=wb.Sheets(“Sheet1”)
strFileName=Dir(sPath&“\*.txt”)
“~~>在文件夹中循环以获取文本文件
当Len(strFileName)>0时执行
“~~>一次性打开文件并将其读入数组
打开二进制文件的sPath&“\”strFileName作为#1
MyData=空间$(LOF(1))
获取#1,MyData
关闭#1
strData()=拆分(MyData,vbCrLf)
“~~>在结果数组中收集信息
对于i=LBound(strData)到UBound(strData)
如果Len(Trim(strData(i)))为0,则
tmpData=拆分(标准数据(i),“,”)
结果数组(n,0)=替换(tmpData(0),Chr(34),“”)
结果数组(n,1)=替换(tmpData(1),Chr(34),“”)
结果数组(n,2)=替换(tmpData(2),Chr(34),“”)
结果数组(n,3)=替换(tmpData(3),Chr(34),“”)
n=n+1
如果结束
接下来我
“~~>获取下一个文件
strFileName=Dir
环
“~~>将数组写入Excel工作表
ws.Range(“A1”).Resize(UBound(ResultArray))_
UBound(Application.Transpose(ResultArray))=ResultArray
Debug.Print“进程结束于:”&现在
端接头
现在每一行对应一个.txt
将列组织为要将.txt导入的表中的列。
例如,如果您想在joomla中导入文章,您的列应该是:
id title别名title别名introtext全文状态section id mask catid创建人创建人创建人创建人别名修改人修改人签出时间发布向上发布向下图像URL attribs版本parentid排序metakey metadesc访问命中元数据
如果希望mysql在上传过程中自动增加id,请将id字段留空
将表另存为.csv并使用phpmyadmin在mysql中导入(选择要导入.csv的表,然后选择导入选项卡)
!!如果您的内容中有西文字符(如é、á…),请将表格另存为.xlsm。然后在open Office Calc中将其打开,然后将其另存为.csv。在弹出框中选择,保持与西文字符相同的格式
你完了