การติดตั้ง PHP connect to SQL Server

ลองติดตั้ง extension ของ PHP สำหรับเชื่อมต่อกับ Microsoft SQL Server เหตุผลที่ต้องทำเช่นนี้เพราะ web service ที่ใช้เป็นระบบหลักมัน run อยู่บน Apache ที่ติดตั้งอยู่บน WAMP หรือ XAMPP อีกทีนึง (เครื่องแม่ข่ายเป็น Windows Server น่ะ มัน run service หลายอย่าง)  มาดูวิธีง่ายๆ แบบที่ไม่มีปัญหาใดๆเลย ดังนี้ 1. ดูว่าใช้ PHP เวอร์ชั่นไหน ในที่นี้ใช้ WAMP วิธีการดูว่าเราใช้ version ไหนก็เพียงแค่เข้า http://localhost เท่านั้นก็จะพบหน้าจอแบบด้านล่างนี้ 2. ดาวน์โหลด Microsoft Drivers for PHP for SQL Server ซึ่งตรงนี้แหละที่เราต้องเลือกให้ตรงกับเวอร์ชั่นที่เราใช้งาน ซึ่งมีรายละเอียดบอกไว้ใน System Requirements ดังนี้ …

ATOM #3 – การติดตั้ง Atom Linter PHP บน Windows

เจ้า Linter นี้ใช้สำหรับดักจับเวลาเรา coding มันจะแสดง error และ warning ขึ้นมาทันที โดยเราไม่ต้องไปเสียเวลา compile หรือเปิดหน้าเว็บดูใหม่นั่นเอง มันช่วยให้ code ใช้เวลาสั้นลงและมีคุณภาพมากยิ่งขึ้น มาว่ากันเรื่องการติดตั้ง package linter-php สำหรับ Windows ที่ลงพวก WAMP, XAMPP, AppServ เป็นต้น หรือใครจะติดตั้งแบบอื่นก็ไม่ว่ากัน ติดตั้ง Package linter-php ด้วยการเข้าไปที่ Settings > Install > พิมพ์ lint php ดังภาพ จะพบ linter-php ให้กด install แล้วรอ จนกว่าจะเสร็จ เราจะมีเริ่มขึ้นตอนการตั้งค่าเพื่อให้มันใช้งานกับ Windows ได้ ให้คลิกที่ Open Config Folder จากนั้นเปิดไฟล์ config.cson ขึ้นมา ซึ่งในตัวอย่างของ …

ข้อพึงระวัง ในการใช้ PDO Transaction กับ auto_increment

ผมมีปัญหาเกี่ยวกับการใช้ transaction ซึ่งเดิมผมสร้าง table ไว้ 3 ตาราง เป็น MyISAM แต่ตอนหลังพบปัญหาข้อมูลไม่ถูกต้อง จึงเปลี่ยนเป็น InnoDB เพื่อทำ foreign key เชื่อมกัน ปัญหาที่พบคือ บางครั้ง INSERT ข้อมูลไปแล้วทั้ง 3 ตารางพร้อมกัน ข้อมูลมันติดค้างอยู่ใน transaction ซักพักก็ rollback ออกมา ทั้งที่ได้ข้อมูลครบถ้วนทุกอย่าง (พอ insert ผมลอง select ดู ซึ่งเท่าที่คิดน่าจะไป select จากใน trancaction ออกมาแสดง ) ปัญหานี้ทำให้ field ที่เป็น PK {auto increment} เลขมันรันต่อไปแล้ว แต่ record กลับไม่มี ปัญหาต่อมาคือ try INSERT ไปแล้ว ไม่แจ้ง error …

วิธีแก้ No input file specified with nginx php-fastc and PHP Codeigniter

ปัญหานี้ผมเพิ่งเคยเจอเหมือนกัน หาทางแก่ไขได้ครับ แต่ไม่แน่ใจว่าใช่คำตอบที่ถูกต้องหรือไม่ โดยครั้งแรกลองทำตามคำแนะนำดังนี้ จาก http://blog.martinfjordvald.com/2011/01/no-input-file-specified-with-php-and-nginx/ เขาว่าปัญหานี้เกิดขึ้นกับคนที่ใช้ nginx+PHP. ซึ่งคำแนะนำมีดังนี้ Wrong Path Sent to PHP Incorrect File Permissions Using Alias and $document_root Chrooted Environment Open Basedir Restriction SCRIPT_NAME Versus SCRIPT_FILENAME ลองอ่านดูแล้ว พบว่าส่วนนี้มันเกินขอบเขตของผู้ใช้งานไปมาก และมั่นใจว่าทาง hosting เขาต้องติดตั้งมาดีแล้ว เลยค้นหาคำตอบจากแหล่งอ้างอิงอื่น จนพบว่า nginx มันจะมีปัญหากับ .htaccess ไฟล์บน apache จริง เพราะตัวมันไม่จะไม่อ่าน htaccess (เรื่องทางเทคนิคผมก็ไม่เข้าใจเหมือนกัน) ด้วยเหตุนี้ผมเลยกลับมาเปิดดู htaccess ของผม ว่ามันทำงานอย่างไร ผมเปลี่ยน RewriteRule เป็นแบบนี้ครับ มันก็สามารถใช้งานได้เลย แค่เปลี่ยน / เป็น ? …

Make my own gallery from facebook album with PHP

มีพี่เข้ามาสอบถามเกี่ยวกับอัลบั้มภาพกิจกรรม แบบที่โรงพยาบาลอ่างทอง (ที่ทำงานผม) ใช้อยู่ ว่าเป็น module อะไร? ทำยังไง? เห็นมันสวยดีเลยอยากให้แนะนำ ผมเลยชี้แจงรายละเอียดคร่าวๆ ดังนี้ครับ code แยกออกเป็นสองส่วนดังนี้ครับ PHP – ใช้ดึงข้อมูลจาก facebook album มาแสดง CSS – จัดรูปแบบให้น่าสนใจ มาดู code php พร้อมคำอธิบาย   ในส่วนของ CSS นั้นผมใช้ service ของ tympanus codrops http://tympanus.net/codrops/2013/06/18/caption-hover-effects/ สามารถ download code ตัวอย่างทั้งหมดได้ที่นี่ครับ https://github.com/MoreMeng/FBgallery

การใช้ function opendir readdir เพื่อแสดงไฟล์และโฟลเดอร์

ไม่ได้ใช้ readdir มานาน ตั้งแต่ลองหัดเขียนระบบ FTP ใหม่ๆ (ปัญหาคืออยากได้โปรแกรมอัพไฟล์ ที่เปิดไว้บนหน้าเว็บน่ะแหละ ขี้เกียจอัพผ่านโปรแกรม FTP) สมัยนั้นใช้ Dreamweaver บ้างก็ CuteFTP, WS FTP, BitKinex, FlashFXP, Filezilla แต่ชอบสุดๆ ก็คือ FlashFXP นี่ละ ถนัดมือ เรื่องของวันนี้คือผมเปิดไฟล์จากระบบ checklist มันเป็นตัวยึกยือ ตามสเต็ปของ linux ซึ่งจำไม่ได้ว่ามันเก็บไฟล์ที่เป็น ด้วย charset แบบไหน ถึงได้ออกมาหน้าตาแบบนี้ ด้วยเหตุนี้เลยลองใช้ readdir เปิดดู พบว่ามันก็แสดงผลเป็น UTF-8 ได้นี่หว่า?? เริ่มงงกับตัวเอง ขั้นตอนต่อไปคงได้เริ่มเขียนให้มันตรวจสอบว่าไฟล์ไหน มีอายุเกิน 2 เดือน หรือ 3 เดือน ให้แสดงรายการเพื่อลบไฟล์นั้นทิ้ง * ขั้นต่อไปก็จะตั้ง cron ให้มันเช็คทุกๆ 1 สัปดาห์ และลบเองไปเลย อธิบายเพิ่มเติมเกี่ยวกับ …