รบกวนผู้รู้ทุกท่าน ดูโค้ด php ให้หน่อยค่ะ
เป็นโค้ดการ import เมื่อรันแล้วจะแสดงข้อความว่า import เรียบร้อยแล้ว แต่ในฐานข้อมูลไม่มีข้อมูลที่ import ค่ะ
เป็นเพราะอะไรหรอคะ รบกวนผู้รู้ทุกท่านดูโค้ดให้หน่อยนะคะ ขอบคุณล่วงหน้าค่ะ
<?
//*** Get Document Path ***//
$strPath = realpath(basename(getenv($_SERVER["SCRIPT_NAME"])));
$OpenFile = "student.xls";
//*** Create Exce.Application ***//
$xlApp = new COM("Excel.Application");
$xlBook = $xlApp->Workbooks->Open($strPath."/".$OpenFile);
//$xlBook = $xlApp->Workbooks->Open(realpath($OpenFile));
$xlSheet1 = $xlBook->Worksheets(1);
//*** Insert to MySQL Database ***//
$objConnect = mysql_connect("localhost","root","abc123") or die("Error Connect to Database");
mysql_query("SET NAMES TIS620");
$objDB = mysql_select_db("student");
for($i=2;$i<=3;$i++){
If(trim($xlSheet1->Cells->Item($i,1)) != "")
{
$strSQL = "";
$strSQL .= "INSERT INTO cpu_std ";
$strSQL .= "(STD_ID, USER, PASSWORD, CITIZEN_ID, PROGRAM_ID,YEAR,PREFIX_NAME,STD_FNAME,STD_LNAME,GENDER,BIRTHDAY,PROVINCE_ID,LEV,CURR,FAC,ISCED,PROGRAM,GPA,HOMEADD,MOO,HOME,SOI,STREET,TAMBON,AMPHUR,PROVINCE,ZIPCODE,TEL,TELEPHONE,FAX,RACE,RELIGION,EMAIL,STATUS_STD) ";
$strSQL .= "VALUES ";
$strSQL .= "('".$xlSheet1->Cells->Item($i,1)."','".$xlSheet1->Cells->Item($i,2)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,3)."','".$xlSheet1->Cells->Item($i,4)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,5)."','".$xlSheet1->Cells->Item($i,6)."') ";
$strSQL .= "('".$xlSheet1->Cells->Item($i,7)."','".$xlSheet1->Cells->Item($i,8)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,9)."','".$xlSheet1->Cells->Item($i,10)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,11)."','".$xlSheet1->Cells->Item($i,12)."') ";
$strSQL .= "('".$xlSheet1->Cells->Item($i,13)."','".$xlSheet1->Cells->Item($i,14)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,15)."','".$xlSheet1->Cells->Item($i,16)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,17)."','".$xlSheet1->Cells->Item($i,18)."') ";
$strSQL .= "('".$xlSheet1->Cells->Item($i,19)."','".$xlSheet1->Cells->Item($i,20)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,21)."','".$xlSheet1->Cells->Item($i,22)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,23)."','".$xlSheet1->Cells->Item($i,24)."') ";
$strSQL .= "('".$xlSheet1->Cells->Item($i,25)."','".$xlSheet1->Cells->Item($i,26)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,27)."','".$xlSheet1->Cells->Item($i,28)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,29)."','".$xlSheet1->Cells->Item($i,30)."') ";
$strSQL .= "('".$xlSheet1->Cells->Item($i,31)."','".$xlSheet1->Cells->Item($i,32)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,33)."','".$xlSheet1->Cells->Item($i,34)."' ";
mysql_query($strSQL);
}
}
if($strSQL){ echo"Import เรียบร้อยแล้ว";}
else{echo"ไม่สามารถ Import ได้";}
//*** Close MySQL ***//
@mysql_close($objConnect);
//*** Close & Quit ***//
$xlApp->Application->Quit();
$xlApp = null;
$xlBook = null;
$xlSheet1 = null;
?>
และลองเอาคำสั่งที่ได้ไปทดสอบบน phpmyadmin ดูว่ามันทำงานได้ตามต้องการหรือเปล่า ถ้ามีข้อผิดพลาด phpmyadmin สามารถแจ้งข้อผิดพลาดให้เรารู้ได้
มันฟ้องแบบนี้ค่ะ เป็นเพราะอะไรหรอคะ
คำค้น SQL:
$strSQL = "";
MySQL แสดง:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$strSQL = ""' at line 1
เห็นชัดๆว่าค่าในตัวแปร $strSQL ไม่ถูกต้อง ดังนั้นก็กลับไปแก้ไขสิครับ ว่าผิดตรงไหน
อย่างแรก ให้เดาก่อนว่า ค่าในตัวแปรนี้ ควรตะมีอะไรบ้าง (ค่าที่ถูกต้อง) ซึ่งถ้าเขียนคำสั่งเองก็น่าจะรู้
อย่างที่สอง กลับไปทวนดูว่าหายตรงไหน
ถ้าจะถามว่าผิดตรงไหนก็สุดที่จะเดาครับ อาจผิดที่ class ก็ได้ หรือเขียนรูปแบบผิด ซึ่งถ้ารู้ว่า ค่าควรจะเป็นเช่นไรก็ให้ไล่ย้อนกลับไปก็จะง่ายขึ้น