|
|
|
สอบถามเรื่องการ Save ข้อมูลโดยใช้ PHP MySQL Add/Insert Multiple Record |
|
|
|
|
|
|
|
การเขียนคำสั่งในการ Insert ข้อมูลเข้าไปในฐานข้อมูลแบบนี้ มีข้อเสียนะครับ ทำให้ฐานข้อมูลทำงานหนักและโปรแกรมของท่านจะมี ประสิทธิภาพต่ำ (perform)
และ หากเป็นกรณีที่ Insert แบบวนลูปแบบนี้ยิ่งทำให้ ฐานข้อมูลทำงานหนักเข้าไปอีก
ถ้าจะลด Load ฐานข้อมูลผมแนะนำแบบนี้นะครับ จะได้เพิ่ม Performance ให้กับโปรแกรมของท่าน
ผม Insert เข้าไป 100 record เข้าแบบสบายๆ และเร็วด้วยครับ
Code (PHP)
//#### ::[อันนี้ผม สมมุติ Loop ขึ้นมานะครับ] เอาทั้งหมด 100 Loop
$sqlStatment = "INSERT INTO customer(CustomerID,Name,Email,CountryCode,Budget,Used)";
for($i=1;$i<=100;$i++)
{
if($i === 1)
$sqlStatment .= "Values('000{$i}','Name {$i}', 'Email {$i}', 'CoutryCode {$i}', 'Budget {$i}', 'used {$i}')";
else
$sqlStatment .= ",('000{$i}','Name {$i}', 'Email {$i}', 'CoutryCode {$i}', 'Budget {$i}', 'used {$i}')";
}
$con = mysql_connect("localhost", "root", "1234");
if($con)
{
mysql_select_db("db_test");
mysql_query($sqlStatment) or print "Cannot perform insert multiple record to database <br />{$sqlStatment}";
}
ขออุทิศบุญกุศลนี้ให้กับ บิดา-มารดาขอข้าพเจ้า และเหล่าเทวดาที่คุ้มคลองปกปักรัษาเรา และเจ้ากรรมนายเวรของเราที่ผิดพลาดล่วงเกินกันมา เทอญ
|
|
|
|
|
Date :
2012-11-16 18:14:19 |
By :
ผู้ที่ต้องการแบ่งปันความรู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าต้องการอ่าน วิธีการ Insert ข้อมูลแบบ Multiple record เข้าไปที่ฐานข้อมูลประเภท Mysql อ่านได้ที่
References http://dev.mysql.com/doc/refman/5.5/en/insert.html นี้นะครับ
|
|
|
|
|
Date :
2012-11-16 18:16:04 |
By :
ผู้ที่ต้องการแบ่งปันความรู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณ คุณผู้ที่ต้องการแบ่งปันความรู้ มากครับ
แต่ช่วยแนะนำผมต่อหน่อยครับ ว่าถ้าต้องการเก็บข้อมูลที่ส่งมาเป็นตัวแปร แล้วไม่ต้องการจะเก็บตัวเลขที่วนลูปในแต่ละรอบ ต้องเอาออกอย่างไงครับ เพราะ code ที่ให้มา มันจะ save ตัวเลขเข้าไปในฐานข้อมูลด้วยครับ
|
|
|
|
|
Date :
2012-11-19 14:30:15 |
By :
Eak |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าผมส่งข้อมูลเป็น $_POST มา แล้วกำหนดให้วน 200 loop มันจะบันทึกข้อมูลเข้าฐานข้อมูลแค่ 167 ครับ แต่ถ้าผมกำหนดเป็นค่าตายตัวดังตัวอย่างที่คุณผู้ที่ต้องการแบ่งปันความรู้ ให้มา แล้วกำหนดให้เป็น 200 loop เช่นกัน มันจะบันทึกข้อมูลเข้าฐานข้อมูลครบ 200 ครับ
Code (PHP)
//#### ::[อันนี้ผม สมมุติ Loop ขึ้นมานะครับ] เอาทั้งหมด 200 Loop
$sqlStatment = "INSERT INTO customer(CustomerID,Name,Email,CountryCode,Budget,Used)";
for($i=1;$i<=200;$i++)
{
if($i === 1)
$sqlStatment .= "Values('".$_POST["txtCustomerID$i"]."','".$_POST["txtName$i"]."','".$_POST["txtEmail$i"]."','".$_POST["txtCountryCode$i"]."','".$_POST["txtBudget$i"]."','".$_POST["txtUsed$i"]."')";
else
$sqlStatment .= ",('".$_POST["txtCustomerID$i"]."','".$_POST["txtName$i"]."','".$_POST["txtEmail$i"]."','".$_POST["txtCountryCode$i"]."','".$_POST["txtBudget$i"]."','".$_POST["txtUsed$i"]."')";
}
$con = mysql_connect("localhost", "root", "1234");
if($con)
{
mysql_select_db("db_test");
mysql_query($sqlStatment) or print "Cannot perform insert multiple record to database <br>{$sqlStatment}";
}
|
|
|
|
|
Date :
2012-11-19 17:11:38 |
By :
Eak |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่วินครับ รบกวนช่วยหน่อยครับ
https://www.thaicreate.com/php/php-mysql-add-insert-multiple-record.html
ตามที่พี่วินเขียนไว้ มันสามารถเพิ่มแถวได้มากสุดกี่แถว แล้วสามารถ save เข้าฐานข้อมูลได้จริง กี่แถวครับ
ผมพยายามแล้วก็ไม่ได้สักทีครับ รบกวนช่วยให้ความกระจ่างหน่อยครับ
|
|
|
|
|
Date :
2012-11-20 14:42:34 |
By :
Eak |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|