[ถาม] SQLite ทำไม insert ไม่เข้าอ่า ช่วยดูทีครับ.. คำสั่ง select สามารถดึงข้อมูลมาได้ปกติครับ แต่ insert ไม่เข้า
Code (PHP)
$dbname="../private/viagroupDB.s3db";
$db = new PDO("sqlite:$dbname");
$sql="INSERT INTO user_data('email','fullname','dob','address','country','company','branch','website','mobliephone','homephone','status') VALUES ('$email','$fname','$dob','$addr','$country','$c_name','$branch','$web','$mobile','$home_phone','0')";
echo $sql;
$db->query($sql);
เป็น sqlite ครับ
คำสั่ง select สามารถดึงข้อมูลมาได้ปกติครับ แต่ insert ไม่เข้า
ลองเอาสิ่งที่ echo ออกมาไป query ในโปรแกรม สมารถ insert ได้ครับ
งงมากTag : PHP
ประวัติการแก้ไข 2012-09-11 10:34:56
Date :
2012-09-11 10:34:11
By :
ssaksit
View :
1185
Reply :
16
ลองดูแบบนี้ครับ
Code (PHP)
$sql="INSERT INTO user_data (email, fullname, dob, address, country, company, branch, website, mobliephone, homephone, status) VALUES ('$email','$fname','$dob','$addr','$country','$c_name','$branch','$web','$mobile','$home_phone','0')";
ปล. ไม่ทราบว่าชนิดของฟิลด์ status เป็นอะไรครับ เช่น เป็น int, var, varchar etc.
Date :
2012-09-11 10:39:27
By :
prach_kp
เป็น VARCHAR หมดเลยครับ
ตอนลอง ใส่ข้อมูล ใส่ไปเป็น VALUES ('2','3','45','6','888','9','6','0','98','9','0') รันผ่านไฟล php ไม่เข้าครับ
แต่เอาไป execute กับโปรแกรม สามารถแอดเข้าไปได้ครับ
Date :
2012-09-11 10:41:38
By :
ssaksit
ทดลองตามโค้ดข้างบนหรือยังครับ คือ ค่าฟิลด์ก่อน values ไม่ต่องมี เครื่องหมาย single quote ( ' ' )
Date :
2012-09-11 10:48:25
By :
prach_kp
ลองเอาออกแล้วครับ
echo มาได้เป็น
Code (PHP)
INSERT INTO user_data(email,fullname,dob,address,country,company,branch,website,mobliephone,homephone,status) VALUES ('34','7','67','758','31','2','33','3','4','45','0')
ข้อมูลยังไม่เข้า้ครับ
แต่ก็อปไป execute กับตัวโปรแกรม สามารถแอดเข้าได้ครับ >_<
ประวัติการแก้ไข 2012-09-11 10:54:38
Date :
2012-09-11 10:54:12
By :
ssaksit
พิมพ์ฟิลด์ mobliephone ผิดครับ และเพิ่มฟิลด์ entrydate เข้าไปด้วยนะครับ ส่วนค่าของฟิลด์ entrydate ก็กำหนดเองนะครับ
Code (PHP)
$sql="INSERT INTO user_data (email, fullname, dob, address, country, company, branch, website, mobliephone, homephone, entrydate, status) VALUES ('$email','$fname','$dob','$addr','$country','$c_name','$branch','$web','$mobile','$home_phone', now(), '0')";
ปล. ตอนเอาไปรันกับโปรแกรมเข้าไม่ทราบว่าโปรแกรมอะไรครับ
Date :
2012-09-11 11:08:15
By :
prach_kp
คำศัพท์ผิดเฉยๆครับ (ชื่อฟิลด์ mobliephone ตรงกันกับฟิลด์ในฐานข้อมูล ตามภาพแรกที่ผมโพสอะครับ)
โปรแกรมครับ
Date :
2012-09-11 11:12:25
By :
ssaksit
ผิดก็ไม่เป็นไรครับ แต่เวลา insert หรือ select ก็พิมพ์ให้ถูกตามนั้นก็แล้วกันครับ
ถ้างั้นลองโค้ดตามนี้ครับ
Code (PHP)
$sql="INSERT INTO user_data (email, fullname, dob, address, country, company, branch, website, mobliephone, homephone, entrydate, status) VALUES ('$email','$fname','$dob','$addr','$country','$c_name','$branch','$web','$mobile','$home_phone', now(), '0')";
Date :
2012-09-11 11:15:33
By :
prach_kp
ส่วน entrydate
ตอนก็อปไป execute กับโปรแกรม ตั้งไว้ให้มันดึงวันที่ปัจจุบันออกอะครับ ซึ่งดึงออกมาได้ปกติ ตามภาพครับ
Date :
2012-09-11 11:20:44
By :
ssaksit
ถ้าอย่างนั้นคงจะต้องตรวจสอบการ connect กับ database แล้วหละครับ เพราะว่าโค้ดเท่าที่ช่วยดูไม่มีปัญหานะครับ
Date :
2012-09-11 11:39:37
By :
prach_kp
คำสั่ง select ใช้ได้ปกดีครับ
ตอนนี้ผมเริ่มสงสัย permission ไฟล์อะครับ อาจจะตั้งไว้แค่ read เฉยๆ
กำลังหาวิธีการตั้งค่า permissison >_<
Date :
2012-09-11 11:43:52
By :
ssaksit
ตอบความคิดเห็นที่ : 10 เขียนโดย : prach_kp เมื่อวันที่ 2012-09-11 11:39:37
รายละเอียดของการตอบ ::
ลองอีก 1 อึดใจ
Code (PHP)
$sql="INSERT INTO user_data (email, fullname, dob, address, country, company, branch, website, mobliephone, homephone, entrydate, status) VALUES ('$email','$fname','$dob','$addr','$country','$c_name','$branch','$web','$mobile','$home_phone', date("Y-m-d H:i:s"), '0')";
Date :
2012-09-11 11:46:32
By :
prach_kp
เป็นที่ permission จริงๆครับ
http://stackoverflow.com/questions/3979600/sqlite-pdo-and-php-new-inserts-not-being-saved
ใช้ได้ละครับ
ขอบคุณพี่ ThaiJSP มากครับ
Date :
2012-09-11 11:52:57
By :
ssaksit
ประวัติการแก้ไข 2012-09-11 12:01:07
Date :
2012-09-11 12:00:50
By :
prach_kp
เกิดปัญหาเดียวกัน เลย
แต่ผม เข้า ไม่ครบ
ส่งไป 7 rec มัน จะ เข้า แค่ 6 rec
ส่ง ไป 8 rec มัน จะเข้า 7 rec
พอมานั่ง ดูๆ แล้ว rec ที่ 3 มัน จะ หาย ตลอด
พอ เอา คำสั่ง ที่ได้ ไป run เอง กลับ เข้าหมด ทุกคำสั่ง
Date :
2012-09-24 17:44:53
By :
siam
Load balance : Server 03