หากเคยพบปัญหาจากการ insert ฐานข้อมูลใหญ่ๆลงใน database
ตามข้างล่างนี้
Code:
# mysql -h localhost -u root -p mydatabase < big_database.sql
ERROR 1153 (08S01) at line 4113: Got a packet bigger than 'max_allowed_packet' bytes
แนะนำว่าให้ลองปรับค่าต่อไปนี้ใน my.cnf (config ของ mysql) ดู
ตำแหน่งของไฟล์นี้จะแตกต่างกันไปแล้วแต่การติดตั้งของแต่ละคน
หากไม่ทราบว่าอยู่ตรงไหนให้
ที่ root path เลยCode:find . -iname my.cnf -print
เมื่อพบแล้วให้แก้บรรทัดต่อไปนี้
max_allowed_packet = 1M
เป็นขนาดที่ใหญ่ขึ้นเช่น
max_allowed_packet = 50M
หลังจากแก้เสร็จให้ save แล้วก็ทำการ restart mysql ของท่านซะ
เท่านี้ปัญหาก็จะหายไป
วันอังคารที่ 22 พฤศจิกายน พ.ศ. 2554
MySQL ERROR-Got a packet bigger than 'max_allowed_packet' bytes
วันอังคารที่ 18 ตุลาคม พ.ศ. 2554
php-การแปลงค่าเงินจากตัวเลขเป็นตัวอักษร
function convert($number)
{
$txtnum1 = array('ศูนย์','หนึ่ง','สอง','สาม','สี่','ห้า','หก','เจ็ด','แปด','เก้า','สิบ');
$txtnum2 = array('','สิบ','ร้อย','พัน','หมื่น','แสน','ล้าน');
$number = str_replace(",","",$number);
$number = str_replace(" ","",$number);
$number = str_replace("บาท","",$number);
$number = explode(".",$number);
if(sizeof($number)>2){
return 'ทศนิยมหลายตัวนะจ๊ะ';
exit;
}
$strlen = strlen($number[0]);
$convert = '';
for($i=0;$i<$strlen;$i++){
$n = substr($number[0], $i,1);
if($n!=0){
if($i==($strlen-1) AND $n==1){ $convert .= 'เอ็ด'; }
elseif($i==($strlen-2) AND $n==2){ $convert .= 'ยี่'; }
elseif($i==($strlen-2) AND $n==1){ $convert .= ''; }
else{ $convert .= $txtnum1[$n]; }
$convert .= $txtnum2[$strlen-$i-1];
}
}
$convert .= 'บาท';
if($number[1]=='0' OR $number[1]=='00' OR $number[1]==''){
$convert .= 'ถ้วน';
}else{
$strlen = strlen($number[1]);
for($i=0;$i<$strlen;$i++){
$n = substr($number[1], $i,1);
if($n!=0){
if($i==($strlen-1) AND $n==1){$convert .= 'เอ็ด';}
elseif($i==($strlen-2) AND $n==2){$convert .= 'ยี่';}
elseif($i==($strlen-2) AND $n==1){$convert .= '';}
else{ $convert .= $txtnum1[$n];}
$convert .= $txtnum2[$strlen-$i-1];
}
}
$convert .= 'สตางค์';
}
return $convert;
}
//เรียกใช้ funtion
$x = '51,211.10 บาท'; //จะใสหรือไม่ใส , ก็ได้
echo $x.' => '.convert($x);
?>
วันอังคารที่ 20 กันยายน พ.ศ. 2554
VBA-Ms Access Delete Table
Dim rst As Recordset
Dim table_name As String
DoCmd.SetWarnings False
Set rst = CurrentDb.OpenRecordset("SELECT * FROM disease")
Do While Not rst.EOF
codedz = rst.Fields("codedz")
table_name = "r506_" & codedz & "_village"
If TableExists(table_name) Then
CurrentDb.TableDefs.Delete (table_name)
End If
rst.MoveNext
Loop
วันศุกร์ที่ 19 สิงหาคม พ.ศ. 2554
VBA-Ms Access Update_dolacode
Dim rsz As Recordset
Dim rst As Recordset
DoCmd.SetWarnings False
Set rsz = CurrentDb.OpenRecordset("SELECT * FROM amphoe WHERE dolacode<>amp_code")
Do While Not rsz.EOF
amp_code = rsz.Fields("amp_code")
dolacode = rsz.Fields("dolacode")
DoCmd.RunSQL "UPDATE EPE0 set ADDRCODE=Replace(ADDRCODE, '" & dolacode & "', '" & amp_code & "',1,4) WHERE left(ADDRCODE,4)='" & dolacode & "'"
rsz.MoveNext
Loop
End Function
วันจันทร์ที่ 15 สิงหาคม พ.ศ. 2554
VBA Ms Access - การอ่าน Text file หลายๆไฟล์ แล้วนำมารวมเป็นไฟล์เดียว
Dim rst As Recordset
DoCmd.SetWarnings False
Set FS_Write = CreateObject("Scripting.FileSystemObject")
Set FS_Read = CreateObject("Scripting.FileSystemObject")
Set rst = CurrentDb.OpenRecordset("SELECT * FROM files")
Do While Not rst.EOF
file_name = rst.Fields("file_name")
DoCmd.RunSQL ("DELETE FROM " & file_name)
Set a2 = FS_Write.CreateTextFile("C:\rawae_f18\" & file_name & ".TXT", True)
For p_year = 2550 To 2553
Set a1 = FS_Read.OpenTextFile("C:\rawae_f18\" & p_year & "\" & file_name & ".TXT")
Do Until a1.AtEndOfStream
sText = a1.ReadLine
a2.writeline (sText)
Loop
a1.Close
Next p_year
a2.Close
rst.MoveNext
Loop
End Sub
วันเสาร์ที่ 2 กรกฎาคม พ.ศ. 2554
VBA-Ms Access Check TableExists
'================================================= ============================
' hlfUtils.TableExists
'-----------------------------------------------------------------------------
' Copyright by Heather L. Floyd - Floyd Innovations - www.floydinnovations.com
' Created 08-01-2005
'-----------------------------------------------------------------------------
' Purpose: Checks to see whether the named table exists in the database
'-----------------------------------------------------------------------------
' Parameters:
' ARGUEMENT : DESCRIPTION
'-----------------------------------------------------------------------------
' TableName (String) : Name of table to check for
'-----------------------------------------------------------------------------
' Returns: True, if table found in current db, False if not found.
'================================================= ============================
Dim strTableNameCheck
On Error GoTo ErrorCode
'try to assign tablename value
strTableNameCheck = CurrentDb.TableDefs(TableName)
'If no error and we get to this line, true
TableExists = True
ExitCode:
On Error Resume Next
Exit Function
ErrorCode:
Select Case Err.Number
Case 3265 'Item not found in this collection
TableExists = False
Resume ExitCode
Case Else
MsgBox "Error " & Err.Number & ": " & Err.Description, vbCritical, "hlfUtils.TableExists"
'Debug.Print "Error " & Err.number & ": " & Err.Description & "hlfUtils.TableExists"
Resume ExitCode
End Select
End Function
วันพุธที่ 22 มิถุนายน พ.ศ. 2554
VBA-Ms Access Create_Batfile
Set fs = CreateObject("Scripting.FileSystemObject")
'Set a = fs.CreateTextFile("C:\Zr506\update.sql", True)
'a.writeline ("UPDATE configuration SET last_date ='" & EngDate(Last_Date) & "';")
'a.Close
txtServer = "localhost"
Set a2 = fs.CreateTextFile("C:\Zr506\update.bat", True)
Set rsz = CurrentDb.OpenRecordset("SELECT * FROM disease ")
Do While Not rsz.EOF
codedz = rsz.Fields("codedz")
a2.writeline ("" & Postgres_Path & "psql -d " & Postgres_DB & " -f C:\Zr506\sick_r506_" & codedz & ".sql -U postgres -h " & txtServer & "")
a2.writeline ("" & Postgres_Path & "psql -d " & Postgres_DB & " -f C:\Zr506\death_r506_" & codedz & ".sql -U postgres -h " & txtServer & "")
rsz.MoveNext
Loop
a2.writeline ("" & Postgres_Path & "psql -d " & Postgres_DB & " -f C:\Zr506\update.sql -U postgres -h " & txtServer & "")
a2.Close
stAppName = "C:\Zr506\update.bat" '¤Ø³µéͧà»ÅÕè¹ Drive áÅÐ Path ¤ÃѺ
Call Shell(stAppName, 3)
End Function
วันพุธที่ 8 มิถุนายน พ.ศ. 2554
VBA-Ms Access Import_Epe0
If TableExists("EPE0") Then
CurrentDb.TableDefs.Delete ("EPE0")
End If
DoCmd.TransferDatabase acImport, "Microsoft Access", "" & db_file & "", acTable, "epe0", "epe0", False
End Function
วันจันทร์ที่ 21 กุมภาพันธ์ พ.ศ. 2554
แปลงฐานข้อมูลจาก tis620 ให้เป็น utf8
mysqldump -uroot -p --default-character-set=tis620 --all-databases > full.sql
2. เปิดไฟล์ full.sql ค้นหา แทนที่ tis620 ด้วย utf8
3. อ่านไฟล์ full.sql ดู ด้านบนจะมีคำว่า SET NAMES utf8
ให้เปลี่ยนเป็น SET NAMES tis620
ซึ่งไฟล์ที่ได้จะเป็นประมาณนี้
SET NAMES tis620;
CREATE TABLE xxx (
...
) CHARSET=utf8
4. ไฟล์ full.sql นี้ ไม่ต้องเปลี่ยน encoding ให้ ANSI หรือ ASCII ต่อไป
5. ถ้าไฟล์มีขนาดใหญ่ คงหาโปรแกรมมาเปิดยากหน่อย
ถ้ามี linux ให้ไปแก้ที่ linux โดยใช้โปรแกรม vi ซึ่งสามารถเปิดไฟล์ใหญ่ ๆ ได้สบาย ๆ
6. คำสั่งค้นหาแทนที่ใน vi คือ
:1,$s/ttis620/utf8/g
สมัครสมาชิก:
บทความ (Atom)