ขอคำแนะนำเรื่อง sql syntax error ผมเขียนโปรแกรมติดต่อฐานข้อมูลนะครับ แต่เกิดปัญหาตรงที่มันฟ้องว่า Error ครับ
ผมเขียนโปรแกรมติดต่อฐานข้อมูลนะครับ แต่เกิดปัญหาตรงที่มันฟ้องว่า Error ครับ
เท่าที่ผมดู มันก็ไม่ได้ผิดนะครับ รบกวนท่านผู้ชำนาญ ชี้แนะแนวทางด้วยครับ
Code
<?php
// put your code here
$server = "localhost";
$username = "root";
$password = "adminadmin";
//connect to database
$db_con = mysql_connect($server, $username, $password);
mysql_select_db("test", $db_con); // test is a name of database
//ส่วนนี้ใช้ได้ ไม่มีปัญหาครับ
$sql = "insert into patien_infomation(personal_id, firstname, lastname, age, height, weight) value('$_POST[personal_id]', '$_POST[firstname]', '$_POST[lastname]', '$_POST[age]', '$_POST[height]', '$_POST[weight]')";
if(!mysql_query($sql)){
die('Error:' . mysql_error());
} else {
echo "Success!!!";
echo $_POST[skin];
echo $_POST[describe];
}
// ตรงนี้คือ ส่วนที่ผมคิดว่าเป็นปัญหาครับ
$sql = "insert into physical(personal_id, eetnm, neck_thyroid, lung_chest, heart, vascular_system, abdomen_visceral, lymph_nodes, gu_system, extremities, spine_musculoskeleton, skin, describe) value('$_POST[personal_id]', '$_POST[eetnm]', '$_POST[neck_thyroid]', '$_POST[lung_chest]', '$_POST[heart]', '$_POST[vascular_system]', '$_POST[abdomen_visceral]', '$_POST[lymph_nodes]', '$_POST[gu_system]', '$_POST[extremities]', '$_POST[spine_musculoskeleton]', '$_POST[skin]', '$_POST[describe]')";
if(!mysql_query($sql)){
die('Error:' . mysql_error());
} else {
echo "Success!!!";
}
?>
นี่คือ Error ที่มันฟ้องมานะครับ
Code
Success!!!1Hi.Error: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 'describe) value('', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', 'Hi.'' at line 1
รบกวนสละเวลาดูให้ผมสักนิดนึงนะครับ
ขอบคุณมากครับ ^^Tag : - - - -
Date :
2010-03-22 09:19:30
By :
keng
View :
1104
Reply :
18
คำว่า values ต้องมี s ด้วยครับ
Date :
2010-03-22 09:38:27
By :
iamatomix
ผมทำตามที่คุณ iamatomix แนะนำแล้วครับ แต่ยังติดปัญหาเดิมเลยครับ
Error ยังเหมือนเดิมเลยครับ
แต่ขอบคุณสำหรับคำแนะนำนะครับ
ตอบได้เร็วมากครับ ^^
Date :
2010-03-22 10:01:33
By :
keng
เพิ่มเติมนะครับ
หากผมใส่ค่า personal_id ซึ่งกำหนดให้เป็น primary key ค่า Error ที่ได้จะแตกต่างกันนะครับ
Code
Success!!!1Hi.Error: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 'describe) values('1909800192716', '1', '1', '1', '1', '1', '1', '1', '1', '1', '' at line 1
ข้อมูลในตารางนี้จะมีทั้งหมด 13 Fields นะครับ
หากใส่ค่า personal_id ลงไปแล้วจะได้ข้อมูลที่แสดงใน Error ไม่ครบ 13 Fields นะครับ
Date :
2010-03-22 10:11:18
By :
keng
col ที่เป็นตัวเลข ไม่ต้องคร่อมด้วย ' ' นะครับ
Date :
2010-03-22 10:16:52
By :
pjgunner
ลองอย่างนี้ดูไม๊ครับ
Code (PHP)
$sql = "INSERT INTO physical(personal_id,eetnm,neck_thyroid,lung_chest,heart,vascular_system,abdomen_visceral,lymph_nodes, gu_system,extremities,spine_musculoskeleton,skin,describe)";
$sql.="VALUES('".$_POST['personal_id']."','".$_POST['eetnm']."','".$_POST['neck_thyroid']."','".$_POST['lung_chest']."','".$_POST['heart']."','".$_POST['vascular_system']."','".$_POST['abdomen_visceral']."','".$_POST['lymph_nodes']."','".$_POST['gu_system']."','".$_POST['extremities']."','".$_POST['spine_musculoskeleton']."','".$_POST['skin']."','".$_POST['describe']."')";
Date :
2010-03-22 11:11:07
By :
onizike
ลองทำตามที่คุณ pigunner แนะนำแล้วนะครับ
ได้ Error ที่ต่างจากเดิมนิดหน่อยครับ
Code
Success!!!1Hi.Error: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 'describe) values('1909800192719', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, Hi.)' at line 1
และทำตามที่คุณ onizike ด้วยเหมือนกันครับ
แต่ก็ยังได้ Error เหมือนเดิมครับ
Code
Success!!!1Hi.Error: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 'describe)VALUES('1909800192721','1','1','1','1','1','1','1','1','1','1','1','Hi.' at line 1
ก็เป็นไปตามที่คุณ pigunner บอกนะครับ col ที่เป็นตัวเลขไม่ต้องใส่ ''
ถึงจะยังแก้ปัญหาไม่ได้ แต่ก็ต้องขอบคุณทั้ง 2 ท่านนะครับที่เข้ามาให้ความรู้ ^^
Date :
2010-03-22 11:35:43
By :
keng
หรือว่ามันจะเป็น BUG ของ SQL ครับ??? T_T
Date :
2010-03-22 13:16:01
By :
keng
คุณลอง insert ที่ฐานข้อมูลโดยตรง แล้วลองดูตัวอย่้าง sql ที่ได้นะคะ (ในกรณีที่ใช้ phpmyadmin จะแสดงให้เห็นค่ะ) ว่าต่างกับของคุณตรงไหน
Date :
2010-03-22 13:24:30
By :
ultrasiam
ออ...เช็คดูชื่อฟิวด์ทุกฟิวด์ด้วยนะคะว่าถูกต้องไหม โดยเฉพาะ describe
Date :
2010-03-22 13:26:32
By :
ultrasiam
ผมเช็คหมดแล้วครับว่าถูกต้องนะครับ
code เดียวกัน นำไป add กับ table patien_infomation ได้
แต่ addกับ table physical ไม่ได้นี่ซิครับ T_T
งงมากมาย
Date :
2010-03-22 13:30:24
By :
keng
เอาโครงสร้าง table ที่มีปัญหานี้มาดูด้วยก็ดีค่ะ
Date :
2010-03-22 13:33:25
By :
ultrasiam
insert จาก phpmyadmin มันจะแสดง sql statement ให้ดูด้วยนะคะ คุณลองเอาตรงนั้นมาเทียบกับของคุณดูค่ะ ว่าผิดตรงไหนหรือเปล่า
Date :
2010-03-22 13:53:22
By :
ultrasiam
ทำได้ครับ แต่ผมไม่เข้าใจว่าทำไมต้องใช้ code แบบนี้ด้วยครับ
Code
$sql = 'INSERT INTO `test`.`physical` (`personal_id`, `eetnm`, `neck_thyroid`, `lung_chest`, `heart`, `vascular_system`, `abdomen_visceral`, `lymph_nodes`, `gu_system`, `extremities`, `spine_musculoskeleton`, `skin`, `describe`) VALUES (\'1234567891234\', \'1\', \'1\', \'1\', \'1\', \'1\', \'1\', \'1\', \'1\', \'1\', \'1\', \'1\', \'Test Hi\');';
แล้วแบบที่ผมใช้อยู่มันผิดตรงไหนหรือครับ??
ขอบคุณ คุณ ultraslim มากนะครับที่ช่วยเหลือผม ^^
Date :
2010-03-22 13:59:55
By :
keng
จากคำแนะนำของคุณ ultraslim ทำให้ผมสามารถแก้ปัญหาที่ทำมาสองวันจนได้ครับ ^^" (บ่งบอกว่า ไม่รู้อะไรเอาซะเลย 555+)
จาก code ในความเห็นที่ผ่านมานะครับ ผมสามารถเอาเครื่องหมาย ` ออกได้ทุกที่ ยกเว้นที่ `describe`) ดังนี้ครับ
Code
$sql = "INSERT INTO physical (personal_id, eetnm, neck_thyroid, lung_chest, heart, vascular_system, abdomen_visceral, lymph_nodes, gu_system, extremities, spine_musculoskeleton, skin, `describe`) VALUES ('$_POST[personal_id]', '$_POST[eetnm]', '$_POST[neck_thyroid]', '$_POST[lung_chest]', '$_POST[heart]', '$_POST[vascular_system]', '$_POST[abdomen_visceral]', '$_POST[lymph_nodes]', '$_POST[gu_system]', '$_POST[extremities]', '$_POST[spine_musculoskeleton]', '$_POST[skin]', '$_POST[describe]');";
ไม่ทราบว่ามันเกี่ยวกับผมประกาศ describe เป็น text รึป่าวครับ??
แล้วก็เครื่องหมาย ` มันพิมพ์ยังไงครับ(ของผมมันเปลี่ยนอักษร)??
Date :
2010-03-22 14:15:13
By :
keng
อ่อ....อิอิ
ขอบคุณมากครับ ผมติดปัญหาที่น่าเข๊กกะโหลกตัวเองจริงๆ ^^"
Date :
2010-03-22 14:27:13
By :
keng
Load balance : Server 03