 |
ช่วยดูคำสั่ง UPDATE ของ SQL ให้หน่อยครับ ว่าผิดตรงไหนครับ |
|
 |
|
|
 |
 |
|
Code (PHP)
$str = "UPDATE tb_Equipment
SET ID_Equipment_Type = ".$_POST['ID_Equipment_Type'].",
ID_Contract = ".$_GET['ID_Contract'].",
ID_Brand = ".$_POST['ID_Brand'].",
Spec = '".$_POST['Spec']."',
Standard = ".$_POST['Standard'].",
Budget_Price = ".$_POST['Budget_Price'].",
Acc_Price = ".$_POST['Acc_Price']."
WHERE ID_Equipment LIKE ".$_GET['ID_Equipment'];

มันขึ้น error แบบนี้ครับ
Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft OLE DB Provider for ODBC Drivers<br/><b>Description:</b> [Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.' in C:\AppServ\www\test\Contract_Equip1.php:349 Stack trace: #0 C:\AppServ\www\test\Contract_Equip1.php(349): com->Open('UPDATE tb_Equip...', Object(com), 1, 3) #1 {main} thrown in C:\AppServ\www\test\Contract_Equip1.php on line 349
echo $str ออกมาได้แบบนี้ครับ
UPDATE tb_Equipment SET ID_Equipment_Type = 9, ID_Contract = 14, ID_Brand = , Spec = 'ggg', Standard = NO, Budget_Price = 1000, Acc_Price = 800 WHERE ID_Equipment LIKE 43
ซึ่ง ค่าของ ID_Brand มันหายไป ซึ่งก่อนกด submit ผมลอง print ค่าดูมันก็มานะครับ
Tag : PHP, Ms Access
|
|
 |
 |
 |
 |
Date :
2011-06-09 10:16:33 |
By :
PikaboyZ |
View :
984 |
Reply :
4 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ปัญหาคือค่ามันหายไปครับ จะต้องตามหาให้เจอว่ามันหายไป หรือว่าตัวแปรไม่ถูกต้องครับ อันที่จริงควรจะเขียนครอบ function ที่เป็นค่าตัวเลขให้หมดน่ะครับ กรณีค่าเป็นว่าง ก็ให้ return ค่า 0 กลับมาครับ sql จะได้ไม่ error ครับ
Code (PHP)
function chkInt($intNumber)
{
if($intNumber=="")
{
return 0;
}
else
{
return $intNumber;
}
}
$str = "UPDATE tb_Equipment
SET ID_Equipment_Type = ".chkInt($_POST['ID_Equipment_Type']).",
ID_Contract = ".chkInt($_GET['ID_Contract']).",
ID_Brand = ".chkInt($_POST['ID_Brand']).",
Spec = '".$_POST['Spec']."',
Standard = ".chkInt($_POST['Standard']).",
Budget_Price = ".chkInt($_POST['Budget_Price']).",
Acc_Price = ".chkInt($_POST['Acc_Price'])."
WHERE ID_Equipment LIKE ".chkInt($_GET['ID_Equipment']);
|
 |
 |
 |
 |
Date :
2011-06-09 10:28:21 |
By :
webmaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มัน return 0 ไม่ได้สิครับ มันต้องเอาค่าไปเก็บ แต่ผมงงตรง ค่ามันหายไปได้ยังไง เดี๋ยวจะลองเอา function นี้ไป check ดูอีกทีครับ
ขอบคุณครับ
|
 |
 |
 |
 |
Date :
2011-06-09 10:53:37 |
By :
PikaboyZ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองกลับไปดูหน้าFormส่งค่าสิครับ บองทีเว้นวรรคดตัวเดียวโปรแกรมก็รวนได้
|
 |
 |
 |
 |
Date :
2011-06-09 11:19:18 |
By :
golderboy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมแนะนำในกรณีที่ค่าเป็นว่าง ถ้าเป็นตัวเลขมันจะได้ไม่ error ครับ 
|
 |
 |
 |
 |
Date :
2011-06-09 11:43:29 |
By :
webmaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|