|
|
|
ช่วยแนะผม เรื่อง ID ใน Database ด้วยครับ คือตอนนี้ ผม กำลัง ทำ ฟอร์มกรอก ข้อมูล ของ บริษัท ครับ |
|
|
|
|
|
|
|
ผมได้เจอ กับ Code ตัวนี้ครับ
Code (PHP)
<?php
mysql_query("LOCK TABLES tablename WRITE"); // lock
mysql_query("SET AUTOCOMMIT = 0");
mysql_query("INSERT INTO tablename (field1, field2) VALUES ('value1',value2)"); // คำสั่ง insert ข้อมูล
$insert_id = mysql_insert_id(); // id ที่ insert เข้าไป
mysql_query("COMMIT");
mysql_query("UNLOCK TABLES"); // unlock
?>
ก็เลย มา ปรัป ใช้ แบบ นี้ ครับ
Code (PHP)
mysql_query("SET NAMES UTF8");
mysql_query("LOCK TABLES jobdata WRITE"); // lock
mysql_query("SET AUTOCOMMIT = 0");
$SQL_INSERT = "INSERT INTO jobdata(Id_Company, ID, Ref_No, invoice, BL_Old, Port_Loading, BL_New, Port_Discharge)
VALUES('".$Id_Company."', '".$Id_Staff."', '".$Ref_No."', '".$Inv."', '".$BL_Old."', '".$PortLoad."', '".$BL_New."', '".$PortDischarge."')";
mysql_query("COMMIT");
mysql_query("UNLOCK TABLES"); // unlock
$Id_Job = mysql_insert_id();
$SQL1 = "INSERT INTO TABLE 2";
$SQL1 = "INSERT INTO TABLE 3";
$SQL1 = "INSERT INTO TABLE 4";
$SQL1 = "INSERT INTO TABLE 5";
ก็เลย อยากจะ ถาม ผม นำ มาใช้ ถูก รูป แบบ หรือ เปล่า ครับ ที่เพราะ
1.ถ้าปรัปใช้แบบนี้ SQL 2 3 4 5 จะไม่ได้ ค่า Id_Job ที่ gen ออก มา ครับ เวลา เพิ่ม ข้อมูล ที่ table 2 3 4 5 ค่า Id จะได้ เป็น 0 ครับ
ที่ เป็น 0 นี้ ผมคาดว่า น่าจะมา จาก
Code (PHP)
mysql_query("SET AUTOCOMMIT = 0");
Code (PHP)
mysql_query("SET NAMES UTF8");
mysql_query("LOCK TABLES jobdata WRITE"); // lock
mysql_query("SET AUTOCOMMIT = 0");
$SQL_INSERT = "INSERT INTO jobdata(Id_Company, ID, Ref_No, invoice, BL_Old, Port_Loading, BL_New, Port_Discharge)
VALUES('".$Id_Company."', '".$Id_Staff."', '".$Ref_No."', '".$Inv."', '".$BL_Old."', '".$PortLoad."', '".$BL_New."', '".$PortDischarge."')";
$Id_Job = mysql_insert_id();
mysql_query("COMMIT");
mysql_query("UNLOCK TABLES"); // unlock
$SQL1 = "INSERT INTO TABLE 2";
$SQL1 = "INSERT INTO TABLE 3";
$SQL1 = "INSERT INTO TABLE 4";
$SQL1 = "INSERT INTO TABLE 5";
2.ถ้าใช้แบบนี้ จะได้ ค่า Id_Job จาก table แรก ครับ แล้ว พอ นำมาเพิ่ม ข้อมูล ที่ table 2 3 4 5 ก็ จะ ได้ ค่า Id_Job ตรงกับ table แรกครับ
Code (PHP)
mysql_query("SET NAMES UTF8");
mysql_query("LOCK TABLES jobdata WRITE"); // lock
mysql_query("SET AUTOCOMMIT = 0");
$SQL_INSERT = "INSERT INTO jobdata(Id_Company, ID, Ref_No, invoice, BL_Old, Port_Loading, BL_New, Port_Discharge)
VALUES('".$Id_Company."', '".$Id_Staff."', '".$Ref_No."', '".$Inv."', '".$BL_Old."', '".$PortLoad."', '".$BL_New."', '".$PortDischarge."')";
mysql_query("COMMIT");
mysql_query("UNLOCK TABLES"); // unlock
$Id_Job = mysql_insert_id();
$SQL1 = "INSERT INTO TABLE 2";
$SQL1 = "INSERT INTO TABLE 3";
$SQL1 = "INSERT INTO TABLE 4";
$SQL1 = "INSERT INTO TABLE 5";
ที่ผมจะถามคือ ที่ผม นำ มา ใช้ แบบนี้ ผม ใช้ ถูก ต้อง แล้ว หรือ ยัง ครับผม รูป แบบ ภาษา เพี้ยน ไป หรือ เปล่าครับ
รบกวน ช่วยแนะนำ ด้วย นะครับ
Code (PHP)
mysql_query("SET NAMES UTF8");
mysql_query("LOCK TABLES jobdata WRITE"); // lock
mysql_query("SET AUTOCOMMIT = 0");
$SQL_INSERT = "INSERT INTO jobdata(Id_Company, ID, Ref_No, invoice, BL_Old, Port_Loading, BL_New, Port_Discharge)
VALUES('".$Id_Company."', '".$Id_Staff."', '".$Ref_No."', '".$Inv."', '".$BL_Old."', '".$PortLoad."', '".$BL_New."', '".$PortDischarge."')";
mysql_query("COMMIT");
mysql_query("UNLOCK TABLES"); // unlock
$Id_Job = mysql_insert_id();
$SQL1 = "INSERT INTO TABLE 2";
$SQL1 = "INSERT INTO TABLE 3";
$SQL1 = "INSERT INTO TABLE 4";
$SQL1 = "INSERT INTO TABLE 5";
ปล. ผมอยากได้คำแนะนำ จาก พี่ๆ ว่า จะเลือกใช้ วิธี ที่1 คือ LOCK TABLE หรือ วิธี ที่2 คือ Random ตัวเลข+ตัวอักษร แล้ว มาเพิ่มในฟิลด์ Id_Job ดี ครับ ยังไงช่วยแนะนำผม ด้วย นะครับ
|
|
|
|
|
Date :
2011-03-01 19:28:58 |
By :
popnakub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|