|
|
|
สอบถามการใช้งานของการอัพเดทข้อมูล มันอัพเดทข้อมูลไม่ได้ไม่ทราบว่าผิดอะไรตรงไหนค่าบ |
|
|
|
|
|
|
|
<? $objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("medical");
$strSQL = "UPDATE tbl_patient SET ID_QRCode = '".$_POST["ID_QRCode"]."ID_Patient = '".$_POST["ID_Patient"]."ID_Card = '".$_POST["ID_Card"]."',Firstname = '".$_POST["Firstname"]."', Lastname = '".$_POST["Lastname"]."' ,Address = '".$_POST["Address"]."', Gender = '".$_POST["Gender"]."', Date_of_Birth = '".$_POST["Date_of_Birth"]."',Age = '".$_POST["Age"]."', Tel= '".$_POST["Tel"]."' ,Blood= '".$_POST["Blood"]."' WHERE ID_QRCode = '".$_GET["ID_QRCode"]."' ";
$objQuery = mysql_query($strSQL);
**มันอัพเดทไม่ได้ ไม่ทราบว่าผิดตรงไหนค่าบ
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2014-12-10 12:07:45 |
By :
Fhanwhan |
View :
653 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<? $objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("medical");
$strSQL = "UPDATE tbl_patient SET ID_QRCode = '".$_POST["ID_QRCode"]."ID_Patient = '".$_POST["ID_Patient"]."ID_Card = '".$_POST["ID_Card"]."',Firstname = '".$_POST["Firstname"]."', Lastname = '".$_POST["Lastname"]."' ,Address = '".$_POST["Address"]."', Gender = '".$_POST["Gender"]."', Date_of_Birth = '".$_POST["Date_of_Birth"]."',Age = '".$_POST["Age"]."', Tel= '".$_POST["Tel"]."' ,Blood= '".$_POST["Blood"]."' WHERE ID_QRCode = '".$_GET["ID_QRCode"]."' ";
$objQuery = mysql_query($strSQL);
มีที่ผิดได้หลายแบบครับ คือ
1. column ที่สั่ง UPDATE มีชื่อไม่ตรงกับในตาราง
2. ข้อมูลที่ส่งมาใน $_GET หรือ $_POST มีอักษรพิเศษ เช่น ' และคุณไม่ได้ escape ก่อนส่ง query ไป UPDATE
|
|
|
|
|
Date :
2014-12-10 12:11:39 |
By :
phpinfo() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ่อ เจอที่ผิดแล้วครับ
$strSQL = "UPDATE tbl_patient SET ID_QRCode = '".$_POST["ID_QRCode"]."ID_Patient = ...
โค้ดที่เขียนแบบนี้มันหาที่ผิดลำบากมากครับ เด๋วจะเขียนให้ดูว่าเราจะเขียน SQL ให้อ่านง่ายได้อย่างไร
|
|
|
|
|
Date :
2014-12-10 12:14:24 |
By :
phpinfo() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
// escape ข้อมูลทั้งหมดให้ปลอดภัยก่อน และย้ายไปอยู่ตัวแปรใหม่
foreach ($_GET as $key => $value) {
$escaped_get[$key] = mysql_real_escape_string($value);
}
foreach ($_POST as $key => $value) {
$escaped_post[$key] = mysql_real_escape_string($value);
}
// เราสามารถขึ้นบรรทัดใหม่ได้ ไม่ต้องต่อพรืดกันเป็นบรรทัดเดียว
// และแทนที่จะใช้การเชื่อม string ด้วย . เราใช้การแทนที่ตัวแปร
// เพราะการแทนที่ตัวแปรเป็นจุดเด่นของ PHP เราควรใช้มัน
$sql = "
UPDATE tbl_patient
SET
ID_QRCode = '{$escaped_post['ID_QRCode']}',
ID_Patient = '{$escaped_post['ID_Patient']}',
ID_Card = '{$escaped_post['ID_Card']}',
Firstname = '{$escaped_post['Firstname']}',
Lastname = '{$escaped_post['Lastname']}',
Address = '{$escaped_post['Address']}',
Gender = '{$escaped_post['Gender']}',
Date_of_Birth = '{$escaped_post['Date_of_Birth']}',
Age = '{$escaped_post['Age']}',
Tel= '{$escaped_post['Tel']}',
Blood= '{$escaped_post['Blood']}'
WHERE ID_QRCode = '{$escaped_get['ID_QRCode']}'
";
if (!mysql_query($sql)) {
exit(mysql_error());
}
|
|
|
|
|
Date :
2014-12-10 12:22:29 |
By :
phpinfo() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|