 |
|
สวัสดีครับ
คือผมทำโค้ดอัพโหลดไฟล์ ขึ้น server และให้มีการอ่านข้อมูลจากไฟล์ เพื่อบันทึกลงฐานข้อมูลครับ
การอัพโหลด หรือบันทึกข้อมูล ก็ทำได้ปกติครับ แต่ติดตรงที่ หากฟิลด์ข้อมูลในไฟล์เป็นภาษาไทย มันจะไม่ยอมบันทึกลงฐานข้อมูลให้อ่ะครับ
ดังภาพ

ผมได้ลองเปลี่ยน charset ทั้ง tis620 มาเป็น utf8 แล้วก็ยังไม่ได้ครับ
จากโค้ด ด้านล่างนี้นะครับ
Code (PHP)
<?php
if($action=="import"){
$file=$_FILES['u_file']['tmp_name'];
$file_name=$_FILES['u_file']['name'];
$file_size=$_FILES['u_file']['size'];
$file_type=$_FILES['u_file']['type'];
if($file==""){
echo"<script>alert('กรุณาแนบไฟล์ด้วย');</script>";
echo"<meta http-equiv=\"refresh\" content=\"0;URL=admin-student.html;importstudent\" />";
}else{
$ext=strtolower(end(explode('.',$file_name)));
if($ext=="txt" or $ext=="csv"){
$path="tmp_upload";
$filename="uploadstudent.$ext";
move_uploaded_file($file,"$path/$filename");
$namefile="$path/$filename";
$oCSV=fopen("$namefile","r");
mysql_query("SET CHARACTER SET utf8");
while(($objArr=fgetcsv($oCSV,1000,","))!==FALSE){
$sql="INSERT INTO t_student";
$sql.="(std_idcard,std_stdid,std_sex,std_name,std_surname,std_birthdate,std_class,std_room,std_status,std_status_46)";
$sql.="VALUES";
$sql.="('".$objArr[0]."','".$objArr[1]."','".$objArr[2]."','".$objArr[3]."','".$objArr[4]."','".$objArr[5]."','".$objArr[6]."','".$objArr[7]."','".$objArr[8]."','".$objArr[9]."')";
$Qsql=mysql_query($sql);
}
fclose($oCSV);
if($Qsql){
echo"<script>alert('นำเข้าข้อมูลเรียบร้อย');</script>";
echo"<meta http-equiv=\"refresh\" content=\"0;URL=admin-student.html;importstudent\" />";
}else{
echo"<script>alert('ไม่สามารถนำเข้าข้อมูลได้ในขณะนี้');</script>";
echo"<meta http-equiv=\"refresh\" content=\"0;URL=admin-student.html;importstudent\" />";
}
}else{// $ext
echo"<script>alert('ไฟล์ที่นำเข้าไม่ถูกต้อง กรุณาใช้ไฟล์ .csv หรือ .txt เท่านั้น');</script>";
echo"<meta http-equiv=\"refresh\" content=\"0;URL=admin-student.html;importstudent\" />";
}
}//file==""
}
?>
ข้อสังเกตนะครับ
1. ผมลองอัพโหลดในเครื่องผมเอง ปกติทุกอย่าง (ผมใช้ appserv 2.5.10)
2. ก่อนหน้านี้ ในโฮสต์ที่ผมเช่านั้น ผมก็ใช้สคริปต์นี้ได้ปกติครับ หมายถึง สามารถบันทึกไฟล์ภาษาไทยได้ปกติครับ
3. หลังจากทางโฮสต์มีการอัพเดตเวอร์ชันของ PHP 5.xx ก็ทำให้ไม่สามารถใช้งานได้
รบกวนช่วยตรวจสอบให้ผมด้วยครับ ผมควรจะแก้ไขตรงส่วนไหนบ้างครับ
ขอบคุณครับ
Tag : PHP, MySQL
|
|
 |
 |
 |
 |
Date :
2013-05-18 16:15:53 |
By :
yomaster |
View :
967 |
Reply :
4 |
|
 |
 |
 |
 |
|
|
|
 |