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 > ปัญหาการเรียกใช้ Stored Procedure ใน MySQL ด้วย PHP ครับ



 

ปัญหาการเรียกใช้ Stored Procedure ใน MySQL ด้วย PHP ครับ

 



Topic : 051404



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



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




ผมใช้ตัว HeidiSQL เป็นตัว broswer mysql ครับ

Code
CREATE PROCEDURE `sp_Test`(IN `id` INT) LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN SELECT * FROM tb_test WHERE tb_test.id=id; END


ผมลองสร้างง่ายๆ เพื่อทดสอบครับ
ลอง Query ดูในโปรแกรม HeidiSQL ผลลัพธ์ ออกปกติ ครับ

CALL sp_Test(1);

แต่พอจะเรียกผ่าน php มันขึ้น Error
PROCEDURE db_test.st_Test can't return a result set in the given context
Code ที่ใช้ ใน php ครับ
Code (PHP)
$sql = "CALL st_Test(1);";
$query = mysql_query($sql) or die(mysql_error());



เป็นเพราะอะไรครับ
php สามารถใช้ Stored Procedure ได้รึไม่ครับ
หรือว่าวิธีใช้ผมไม่ถูกต้องครับ ขอคำแนะนำด้วยครับ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-11-09 15:37:27 By : kalawa View : 5172 Reply : 8
 

 

No. 1



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

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

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

คำสั่ง CALL เป็นการเรียกใช้ Store Procedure

หากจะใช้คำสั่ง CALL ต้องสร้าง Store Procedure ให้มันก่อนครับ

เช่น
Code (PHP)
CREATE PROCEDURE sp_Test( )
BEGIN
   SELECT * FROM tb_test WHERE tb_test.id=id;
END


ครับ

CREATE PROCEDURE sp_Test( ) เป็นเหมือนชื่อฟังก์ชั่นน่ะครับ

ส่วน หลัง BEGIN คือคำสั่ง MySQL ครับ


ลองดูอีกครั้งนะครับว่าโอเคไหม






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 15:51:09 By : adaaugusta
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : adaaugusta เมื่อวันที่ 2010-11-09 15:51:09
รายละเอียดของการตอบ ::
ก็ ผมได้สร้าง SP ไว้แล้ว ดังโค้ดสีแดง ด้านบนอะครับ แล้วได้ทดสอบ โดย CALL sp ผ่านตัว MySQL Broswer ด้วยโปรแกรม HeidiSQL แล้ว ผลลัพธ์ ก็ออกมาถูกต้อง

แต่พอ ใช้ ผ่าน PHP มันก็ขึ้น ERROR ดังกล่าวครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 15:55:57 By : kalawa
 

 

No. 3



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



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


มีใครพอทราบ หรือ ใช้ Stored Procedure ใน MySQL ร่วมกับ PHP บ้างครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 21:34:11 By : kalawa
 


 

No. 4



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

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

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


st_Test or sp_Test?
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-10 02:21:30 By : PlaKriM
 


 

No. 5



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



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


ตอบความคิดเห็นที่ : 4 เขียนโดย : PlaKriM เมื่อวันที่ 2010-11-10 02:21:30
รายละเอียดของการตอบ ::
ขอโทษทีครับ sp_Test ถูกแล้ว พอดีข้างบนพิมพ์ผิด
ที่ลอง ใช้ ชื่อฟังก์ชัน พวกนี้ถูกแล้ว แต่ก็ยัง error
PROCEDURE db_test.sp_Test can't return a result set in the given context อยู่

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-10 08:38:53 By : kalawa
 


 

No. 6

Guest


ผมเคยเจอครับปัญหานี้ เท่าที่ทราบคือ ถ้า store proc มี result set กลับมา จะใช้ function mysql_query ไม่ได้ครับ ต้องใช้ mysqli_query แทน ( $result_set = mysqli_query([connection], 'call store_proc_name') ) แต่ทั้งนี้ function ต่าง ๆ ที่ใช้ fetch หรือ connect หรืออื่น ๆ ต้องใช้ของ mysqli ด้วยเช่นกันครับ

หรือใครมีวิธีอื่นก็แนะนำติชมได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-10 09:57:32 By : PP
 


 

No. 7



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



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


ตอบความคิดเห็นที่ : 6 เขียนโดย : PP เมื่อวันที่ 2010-11-10 09:57:32
รายละเอียดของการตอบ ::
พึ่งอ่านเจอพอดีเหมือนกันครับ พอดีได้ตัวอย่างจากในเว็บนี้ เลยเข้าใจได้ว่า ไม่สามารถ ใช้ mysql เฉยๆได้ต้องเป็น mysqli
http://www.joeyrivera.com/2009/using-mysql-stored-procedures-with-php-mysqlmysqlipdo/
ยังไงก็ขอบคุณทุกๆความเห็นมากครับ



ประวัติการแก้ไข
2010-11-10 10:24:02
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-10 10:15:41 By : kalawa
 


 

No. 8



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

มีโอกาสได้เริ่มซะที



MySQL สอนเขียน Stored Procedure, View Table, Function, Trigger บน MySQL Database

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-11 13:59:50 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ปัญหาการเรียกใช้ Stored Procedure ใน 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 05
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 อัตราราคา คลิกที่นี่