Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > วิธีตัด regular expression โค้ด insert MySQL โดย PHP



 

วิธีตัด regular expression โค้ด insert MySQL โดย PHP

 



Topic : 095967

Guest




รบกวนช่วยดูหน่อยครับ คือผมต้องการตัด values ของโค้ด insert ตัดใน PHP นะครับ
จะต้อง regular expression ยังไงเหรอครับ
ตัวอย่างปัญหาที่เจอนะครับ
1. INSERT INTO AA(F1,F2)VALUES('V1','V2,V3');
2. INSERT INTO AA(F1,F2)VALUES(1,'V2,V3');
3. INSERT INTO AA(F1,F2)VALUES('V1,V2','V3');
4. INSERT INTO AA(F1,F2)VALUES('V1,V2',3);

** values ใน insert อาจเป็น ภาษาไทย หรือ ภาษาอังกฤษ ก็ได้นะครับ
ขอบคุณมากครับ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-06-01 11:26:56 By : patiphan View : 1339 Reply : 7
 

 

No. 1



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

อยากได้ข้อมูลในรูปแบบไหนเหรอครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-01 12:41:59 By : {Cyberman}
 


 

No. 2

Guest


อยากได้เป็น array ครับ อย่างเช่น
1. INSERT INTO AA(F1,F2)VALUES('V1','V2,V3');
จะได้ array(0=>'V1',1=>'V2,V3')

2. INSERT INTO AA(F1,F2)VALUES(1,'V2,V3');
จะได้ array(0=>1,1=>'V2,V3')

3. INSERT INTO AA(F1,F2)VALUES('V1,V2','V3');
จะได้ array(0=>'V1,V2',1=>'V3')

4. INSERT INTO AA(F1,F2)VALUES('V1,V2',3);
จะได้ array(0=>'V1,V2',1=>3)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-01 16:44:17 By : patiphan
 

 

No. 3



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

ไม่เก่ง regular expression ครับ
ผมจะใช้วิธี explode() สองรอบ
รอบแรกใช้แยกข้อความด้วย VALUES
รอบที่สองใช้แยกข้อความด้วย ','

จากนั้นก็ใช้ str_replace() แทนที่ (' เป็นค่าว่าง ให้กับอาร์เรย์ผลลัพธ์ตัวแรก
จากนั้นก็ใช้ str_replace() แทนที่ '); เป็นค่าว่าง ให้กับอาร์เรย์ผลลัพธ์ตัวที่สอง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-01 16:55:21 By : {Cyberman}
 


 

No. 4



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

regex ครั้งเดียวไม่พอครับ จริงๆ ต้อง parse กันแบบหลายตลบมาก ถ้าจะให้ได้ผลที่สมบูรณ์จริงๆ
แต่ถ้าจะเอาง่ายๆ ใช้วิธีของคุณ cyberman ก็ได้ครับ

แต่ถ้าจะใช้ pcre ก็จะประมาณนี้

Code (PHP)
<?php
$str = "INSERT INTO AA(F1,F2)VALUES('V1,V2','V3', 3, 555, 666, 777, 'สวัสดีครับ', 'CookiePHP', '');";
// เอาเฉพาะส่วนตั้งแต่ 'VALUES' เป็นต้นไป
$str = mb_substr($str, mb_strpos($str, 'VALUES', 0, "UTF-8"), PHP_INT_MAX, "UTF-8");
// หาเฉพาะอะไรก็ตามที่เริ่มด้วย ( หรือ , และจบด้วย , หรือ )
// หรือเริ่มด้วย ' และจบด้วย '
preg_match_all(
	'/[\(\,]\s*(?>([^\'][^\,\)]*)|\'((?>\\\\\'|[^\'])*)\')/u',
	$str,
	$m,
	PREG_SET_ORDER
);
// เอาผลที่ได้มารวมกันเป็น array เดียว
$all = array();
foreach ($m as $v) {
	$all[] = isset($v[2]) ? $v[2] : $v[1];
}
print_r($all);


ผลลัพธ์
Array ( [0] => V1,V2 [1] => V3 [2] => 3 [3] => 555 [4] => 666 [5] => 777 [6] => สวัสดีครับ [7] => CookiePHP [8] => )

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-02 02:05:42 By : cookiephp
 


 

No. 5



โพสกระทู้ ( 615 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


Code (PHP)
$str = "INSERT INTO AA(F1,F2)VALUES('V1','V2,V3');";
$p = array('/INSERT/','/INTO/','/AA/','/F1,F2/','/VALUES/','/;/','/\(/','/\)/',"/'/");
$str = trim(preg_replace($p, null, $str));
$result = preg_split('/,/',$str);
var_dump($result);

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-02 03:11:14 By : t-monroe
 


 

No. 6



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 5 เขียนโดย : t-monroe เมื่อวันที่ 2013-06-02 03:11:14
รายละเอียดของการตอบ ::
- -

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-02 03:24:37 By : cookiephp
 


 

No. 7

Guest


ขอบคุณทุกๆ คนมากเลยครับ

ตอบความคิดเห็นที่ : 4 เขียนโดย : cookiephp เมื่อวันที่ 2013-06-02 02:05:42
รายละเอียดของการตอบ ::
แบบนี้ ลองดูแล้วได้ตามที่ต้องการเลยครับผม

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-03 10:57:07 By : patiphan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : วิธีตัด regular expression โค้ด insert MySQL โดย PHP
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่