ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programming[ปรึกษา] การเขียน PHP โอนข้อมูล ระหว่าง SERVER กับ SERVER
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: [ปรึกษา] การเขียน PHP โอนข้อมูล ระหว่าง SERVER กับ SERVER  (อ่าน 6370 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
ChilTunDer
ก๊วนเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 317



ดูรายละเอียด
« เมื่อ: 08 เมษายน 2014, 23:43:52 »

จากรูป



ผมจะเขียนไฟล์ PHP ยังไงให้เครื่อง server 2 และ 3 สามารถดึงข้อมูล Database (บางตาราง และบางคอลั่ม) จาก server 1 มา Update ได้ครับ.

แบบว่าเปิดไฟล์ขึ้นมา และมีปุ่มให้กด ถึงจะเริ่มทำการโอน (update) ข้อมูล

โดยเครื่อง Server แต่ละเครื่องจะอยู่กันคนละที่นะครับ แต่ผมใช้ no-ip ในการติดต่อกัน
« แก้ไขครั้งสุดท้าย: 08 เมษายน 2014, 23:44:45 โดย ChilTunDer » บันทึกการเข้า
adidog
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 238
ออฟไลน์ ออฟไลน์

กระทู้: 1,861



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 09 เมษายน 2014, 04:19:15 »

เอาง่ายก้อ xml หรือ หา soap มาใช้ครับ
บันทึกการเข้า

Certain Dri Certain Dri
คุณแม่มือใหม่ คุณแม่มือใหม่
esanza.com
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 270
ออฟไลน์ ออฟไลน์

กระทู้: 3,673



ดูรายละเอียด
« ตอบ #2 เมื่อ: 09 เมษายน 2014, 08:58:03 »

ทำได้นะครับ  wanwan016
บันทึกการเข้า

ใครต้องการเช่าโฮสที่มี Control Panel ดีๆ
และ Support ดี แนะนำ => โฮสอะตอม
Fallen
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 162
ออฟไลน์ ออฟไลน์

กระทู้: 2,751



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 09 เมษายน 2014, 09:24:29 »

นี่ถ้าทำให้ย้ายข้อมูล เวลาย้ายโฮสต์เว็บได้ น่าจะมีคนใช้บริการเยอะน่ะครับ
หรือ ว่ามันจะเปลืองเเบนวิธคนเลยไม่ทำ ทำให้บริการ
 Tongue
บันทึกการเข้า

ChilTunDer
ก๊วนเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 317



ดูรายละเอียด
« ตอบ #4 เมื่อ: 11 เมษายน 2014, 23:55:49 »

ตอนนี้ผมคิดวิธีแบบง่ายๆออกละครับ แต่ยังไม่ได้เริ่มลงมือทำ ถ้าได้ยังไง จะเอามา แจกนะครับ แต่ถ้าเงียบหายไป ก็คือ ยังทำไม่ได้นะครับ  Tongue
บันทึกการเข้า
max30012540
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 196
ออฟไลน์ ออฟไลน์

กระทู้: 1,310



ดูรายละเอียด
« ตอบ #5 เมื่อ: 12 เมษายน 2014, 00:00:51 »

แค่ตั้งค่าให้ MySQL อนุญาตให้เชื่อมต่อข้าม IP ครับ Tongue
บันทึกการเข้า
คนธรรมดา
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 138
ออฟไลน์ ออฟไลน์

กระทู้: 1,046



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 12 เมษายน 2014, 00:06:32 »

ถ้าเอาตามนี้
อ้างถึง
(บางตาราง และบางคอลั่ม)
ก็คงต้องเป็น API ใช้เอาเองครับ

แต่ถ้าต้องการทั้ง database ก็ add mysql user พร้อม IP ของ Web Server ที่ต้องการเข้าไปใน MySQL Server แทนครับ
« แก้ไขครั้งสุดท้าย: 12 เมษายน 2014, 00:06:59 โดย คนธรรมดา » บันทึกการเข้า

kobkung
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 103
ออฟไลน์ ออฟไลน์

กระทู้: 1,312



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 12 เมษายน 2014, 10:53:40 »

replicate ไม่ได้รึ

เขียน php ไม่เห็นยากเลย แค่ให้กำหนด connect ต้นทาง ปลายทาง ระบุ user pass
แล้วก็ select ไป insert อีกเบส มันอยู่ที่ความอ้วนของข้อมูลด้วยว่าใช้วิธีไหน เยอะแยะ  wanwan004 ชอบเรียกความอ้วน
บันทึกการเข้า

เราเป็นบริษัท รับทำเว็บไซต์ แก้เว็บเดิม เขียน Php+Mysql+jQuery+css+bootstrap  งานตามสั่ง ประสบการณ์ จะ 19 ปี ละจ้า
Smilephp.com รับทำเว็บไซต์บริษัท e-commerce + ระบบชำระเงิน paypal,ธนาคาร  เว็บบริษัท เว็บขายของ ระบบจอง เช่า เขียน PHP ได้ทุกแนว  ช่วงนี้เน้นรับงาน ERP ระบบเอกสารบริษัท ,บัญชี ,  Barcode, Stock , Warehouse , Logistic ติดต่อ 086-364-5262

งดตอบคนทำเว็บนอกลู่นอกทาง ไม่ทำเว็บ WP ปั่นแชร์ เว็บประมูล สคริปปั่นใดๆ ไม่ทำเว็บบอลและพ
Queue
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 106
ออฟไลน์ ออฟไลน์

กระทู้: 4,296



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 12 เมษายน 2014, 11:01:14 »

MySQL ปกติ ทาง Host จะไม่ยอม ให้ Connect ข้าม Server ถ้าอยาก เซ็ต ก็กำหนดสิทธิ์ เอง

ถ้าเราเป็นคนทำเว็บ ที่ทาง host ไม่ยอมเพิ่มสิทธิ์ให้ เราก็ต้องใช้ API เป็นตัว ดึงข้อมูลข้าม Server ครับ
บันทึกการเข้า

wee2tee
Newbie
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 1



ดูรายละเอียด
« ตอบ #9 เมื่อ: 13 เมษายน 2014, 12:07:18 »

จากรูป



ผมจะเขียนไฟล์ PHP ยังไงให้เครื่อง server 2 และ 3 สามารถดึงข้อมูล Database (บางตาราง และบางคอลั่ม) จาก server 1 มา Update ได้ครับ.

แบบว่าเปิดไฟล์ขึ้นมา และมีปุ่มให้กด ถึงจะเริ่มทำการโอน (update) ข้อมูล

โดยเครื่อง Server แต่ละเครื่องจะอยู่กันคนละที่นะครับ แต่ผมใช้ no-ip ในการติดต่อกัน

ผมเคยทำระบบประมาณนี้ตอนที่ยังทำงานประจำอยู่ ลองแบบนี้ดูนะครับ
ที่ Server1 :
        - สร้างไฟล์ php (สมมุติชื่อไฟล์ serv1.php) เพื่ออ่านข้อมูลที่ต้องการจะส่งกลับไปให้ Server2 หรือ Server3 แล้ว echo ออกมาในรูปแบบ JSON
          ตัวอย่าง   $arr_row = array();
                       /** ตรงนี้ใช้ loop while ทำการ fetch ข้อมูลที่อ่านได้มาใส่ใน $arr_row  **/
                       while($row = mysql_fetch_array($res)){
                               array_push($arr_row, array("field_name1" => $row[field_name1], "field_name2" => $row[field_name2]));
                       }
                       /** แสดงผลมันออกมา **/
                       echo json_encode($arr_row);

ที่ Server2,Server3 :
        - สร้างไฟล์ php โดยในไฟล์ก็มีเนื้อหาประมาณนี้
          /** สร้างตัวแปรมารับ json string ที่เรียกมาจาก Server1 **/
          $json = file_get_contents("http://www.Server1.com/serv1.php ");
     
          /** แปลง json string ให้เป็น object เก็บไว้ในตัวแปร $data **/
          $data = json_decode($json);

          /** สร้างตัวแปร array แล้วใช้ foreach ใส่ข้อมูลเข้าไปเป็น array แบบสองมิติ **/
          $arr_row = array();
          foreach ($data as $row => $val) {
               array_push($arr_row, array("field_name1" => $val->{'field_name1'}, "field_name2" => $val->{'field_name2'}));
          }

         จากนั้นก็สร้าง recursive function ให้ทำการเขียนข้อมูลลงใน MySQL โดยเช็คว่าถ้า insert ข้อมูลใน row ปัจจุบันสำเร็จ แล้วค่อยทำการ insert row ถัดไปครับ

         หมายเหตุ :
              1. ที่ไม่ใช้คำสั่งทำการ insert ใน Loop ของ foreach เนื่องจากจะเกิดปัญหาคอขวดครับ เขียนลง DB ไม่ทันกับคำสั่ง insert ที่ส่งเข้ามา
              2. ควรจะสร้างเงื่อนไข หรือ logic พิเศษบางอย่างเพิ่มเติมเข้าไปในไฟล์ serv1.php ด้วยนะครับ เพื่อป้องกันการเรียกใช้ไฟล์นี้จากผู้อื่นที่ไม่ได้เกี่ยวข้องกับระบบงาน อันนี้ฝากไปคิดเอาเองนะครับ
              3. ถ้าพี่ ๆ เพื่อน ๆ ท่านอื่น มีข้อแนะนำเพิ่มเติม ก็จักเป็นพระคุณอย่างยิ่งครับ

         
« แก้ไขครั้งสุดท้าย: 06 พฤษภาคม 2014, 15:09:24 โดย wee2tee » บันทึกการเข้า
tontan1998
ก๊วนเสียว
*

พลังน้ำใจ: 25
ออฟไลน์ ออฟไลน์

กระทู้: 376



ดูรายละเอียด เว็บไซต์
« ตอบ #10 เมื่อ: 13 เมษายน 2014, 18:35:49 »

จากรูป



ผมจะเขียนไฟล์ PHP ยังไงให้เครื่อง server 2 และ 3 สามารถดึงข้อมูล Database (บางตาราง และบางคอลั่ม) จาก server 1 มา Update ได้ครับ.

แบบว่าเปิดไฟล์ขึ้นมา และมีปุ่มให้กด ถึงจะเริ่มทำการโอน (update) ข้อมูล

โดยเครื่อง Server แต่ละเครื่องจะอยู่กันคนละที่นะครับ แต่ผมใช้ no-ip ในการติดต่อกัน

ผมเคยทำระบบประมาณนี้ตอนที่ยังทำงานประจำอยู่ ลองแบบนี้ดูนะครับ
ที่ Server1 :
        - สร้างไฟล์ php (สมมุติชื่อไฟล์ serv1.php) เพื่ออ่านข้อมูลที่ต้องการจะส่งกลับไปให้ Server2 หรือ Server3 แล้ว echo ออกมาในรูปแบบ JSON
          ตัวอย่าง   $arr_row = array();
                       /** ตรงนี้ใช้ loop while ทำการ fetch ข้อมูลที่อ่านได้มาใส่ใน $arr_row  **/
                       while($row = mysql_fetch_array($res)){
                               array_push($arr_row, array("field_name1" => $row[field_name1], "field_name2" => $row[field_name2]));
                       }
                       /** แสดงผลมันออกมา **/
                       echo json_encode($arr_row);

ที่ Server2,Server3 :
        - สร้างไฟล์ php โดยในไฟล์ก็มีเนื้อหาประมาณนี้
          /** สร้างตัวแปรมารับ json string ที่เรียกมาจาก Server1 **/
          $json = file_get_contents("http://www.Server1.com/serv1.php ");
    
          /** แปลง json string ให้เป็น object เก็บไว้ในตัวแปร $data **/
          $data = json_decode($json);

          /** สร้างตัวแปร array แล้วใช้ foreach ใส่ข้อมูลเข้าไปเป็น array แบบสองมิติ **/
          $arr_row = array();
          foreach ($data as $row => $val) {
               array_push($arr_row, array("field_name1" => $val->{'1'}, "field_name2" => $val->{'2'}));
          }

         จากนั้นก็สร้าง recusive function ให้ทำการเขียนข้อมูลลงใน MySQL โดยเช็คว่าถ้า insert ข้อมูลใน row ปัจจุบันสำเร็จ แล้วค่อยทำการ insert row ถัดไปครับ

         หมายเหตุ :
              1. ที่ไม่ใช้คำสั่งทำการ insert ใน Loop ของ foreach เนื่องจากจะเกิดปัญหาคอขวดครับ เขียนลง DB ไม่ทันกับคำสั่ง insert ที่ส่งเข้ามา
              2. ควรจะสร้างเงื่อนไข หรือ logic พิเศษบางอย่างเพิ่มเติมเข้าไปในไฟล์ serv1.php ด้วยนะครับ เพื่อป้องกันการเรียกใช้ไฟล์นี้จากผู้อื่นที่ไม่ได้เกี่ยวข้องกับระบบงาน อันนี้ฝากไปคิดเอาเองนะครับ
              3. ถ้าพี่ ๆ เพื่อน ๆ ท่านอื่น มีข้อแนะนำเพิ่มเติม ก็จักเป็นพระคุณอย่างยิ่งครับ

        


+1 สุดยอดครับ มีแบบ xml ไหมครับ โฮมไม่รองรับการใช้งาน json เกินจำนวนครับ  Lips Sealed
บันทึกการเข้า

สวัสดี ชาว Thaiseoboard ทุกคนครับ Smiley
EbookIT ซื้อหนังสือออนไลน์
x-script
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 140
ออฟไลน์ ออฟไลน์

กระทู้: 1,940



ดูรายละเอียด
« ตอบ #11 เมื่อ: 14 เมษายน 2014, 07:02:50 »

ผมว่า อย่าทำเรื่อิงง่ายๆ ให้เป็นเรื่องยากเลย

แค่คุณเปิดสิทธิ์ให้ไอพี ต่อมาใน mysql ก็จบแล้วครับ

พวก xml มันเหมาะกับไม่ต้องการให้เข้ามายุ่งใน db มาก และเสียเวลาเขียน
บันทึกการเข้า
penthai06
ก๊วนเสียว
*

พลังน้ำใจ: 7
ออฟไลน์ ออฟไลน์

กระทู้: 225



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 26 เมษายน 2014, 00:04:53 »

ผมว่า อย่าทำเรื่อิงง่ายๆ ให้เป็นเรื่องยากเลย

แค่คุณเปิดสิทธิ์ให้ไอพี ต่อมาใน mysql ก็จบแล้วครับ

พวก xml มันเหมาะกับไม่ต้องการให้เข้ามายุ่งใน db มาก และเสียเวลาเขียน
ใช่เลยครับถ้าจะทำแบบตามแนวคิดก็ต้องไปดูเรื่องการเขียน REST Service and API จะทำให้ระบบปลอดภัยมากขึ้น
บันทึกการเข้า

keen1234
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 72



ดูรายละเอียด เว็บไซต์
« ตอบ #13 เมื่อ: 26 เมษายน 2014, 22:34:53 »

เหมือนมีคนขุดกระทู้ขึ้นมา... Tongue

ก็ใช้ MySQL โดยตรงเลยก็ได้ครับ อย่าลืมตั้งให้ติดต่อจจากภายนอกได้ด้วยย  wanwan003
บันทึกการเข้า

ถูกใจ กรุณากด +1 แทนคำขอบคุณ
Gigabit-Shop.com : Minecraft Gift Code(ไอดีแท้), Steam Wallet, LINE Prepaid Card, True Money และบัตรเติมเกมอื่นๆราคาถูก
kaorism
ก๊วนเสียว
*

พลังน้ำใจ: 64
ออฟไลน์ ออฟไลน์

กระทู้: 338



ดูรายละเอียด
« ตอบ #14 เมื่อ: 27 เมษายน 2014, 14:34:06 »

ถ้าไม่ต้องติดอยู่กับ Mysql  แนะนำ CouchDB. ครับ  จะได้ไม่ต้องเขียน code ให้ sync เอง
บันทึกการเข้า

DropRobot - Domains and SEO network expert  droprobot.com
ไม่มี account ก็ pm มานะจ๊ะ  ตอนนี้รับจำนวนจำกัด...


- has1.com   yim8.com  1xyz.com  kor3.com  bd2u.com, ig69.com  / โดเมนละ 1000 บาท
- ออกแบบ เคส iPhone 5 และเคสอื่นๆ ออนไลน์
dekmv
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 222
ออฟไลน์ ออฟไลน์

กระทู้: 3,264



ดูรายละเอียด เว็บไซต์
« ตอบ #15 เมื่อ: 27 เมษายน 2014, 14:51:14 »

JSON มั้ยครับ แล้วสร้าง token มาใช้เป็น key ครับ  Cry
บันทึกการเข้า
ChilTunDer
ก๊วนเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 317



ดูรายละเอียด
« ตอบ #16 เมื่อ: 29 เมษายน 2014, 16:36:28 »

ขอบคุณครับ

 wanwan017
บันทึกการเข้า
knopsod
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 43



ดูรายละเอียด
« ตอบ #17 เมื่อ: 01 พฤษภาคม 2014, 02:30:26 »

ผมใช้ php + nusoap + flash
flash เป็นตัว request ไปยัง php ให้มันติดต่อกันด้วย webservice
เพิ่งทำแนวๆ นี้ให้ลูกค้าไป
http://energy.intech.lru.ac.th/energy/WtkSync/WtkSync.html
บันทึกการเข้า

รับทำโปรเจ็คท์ Cross-Platform Mobile App (Flutter, React-Native, Firebase, SQLite)
LINE : noppadon.sodram
https://www.facebook.com/313952762642573
หน้า: [1]   ขึ้นบน
พิมพ์