ด้วยสํานึกในพระมหากรุณาธิคุณสมเด็จพระนางเจ้าสิริกิติ์เป็นล้นพ้นอันหาที่สุดมิได้
ด้วยสํานึกในพระมหากรุณาธิคุณสมเด็จพระนางเจ้าสิริกิติ์เป็นล้นพ้นอันหาที่สุดมิได้


ถามเรื่อง การใช้ Stored Procedure ใน MySQL ครับ

ถาม-ตอบ แนะนำไอเดีย โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ถามเรื่อง การใช้ Stored Procedure ใน MySQL ครับ

ปัจจุบัน นักพัฒนาสามารถ ใช้ ChatGPT | Gemini | Claude | Perplexity | Deepseek ช่วยในการแก้ไขปัญหาต่างๆ ในการเขียนโปรแกรม หรือหาข้อมูลเพิ่มเติมได้ง่ายและสะดวก แนะนำให้ทุกคนใช้งานเพื่อพัฒนาศักยภาพของตัวเอง

ถามเรื่อง การใช้ Stored Procedure ใน MySQL ครับ

 ผมลองสร้าง Stored Procedure ง่ายๆแล้วลอง Query ด้วย โปรแกม MySQL Broswer สามารถ ใช้ได้ปกติครับ

Call sp_test();

แต่พอนำมา query ผ่าน php

$sql = "CALL sp_test()";

$query = mysql_query($sql) or die(mysql_error());

มัน error ว่า 

PROCEDURE db_test.sp_test can't return a result set in the given context

จะแก้ไขยังไงได้บ้างครับ



Likito 09-11-2010 16:15:48

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • CAPTCHA Image
    Play CAPTCHA Audio
    Refresh Image


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1

ไม่แน่ใจครับ ลองดู

$sql = CALL sp_test();



swe 09-11-2010 16:37
 ความคิดเห็นที่ 2

 ไม่ได้อะครับ ไม่ขึ้นอะไรเลย



likito 10-11-2010 09:19
 ความคิดเห็นที่ 3

 อะไรคือ 

Stored Procedure


แต่น่าสนใจ ลองอ่านเนื้อหาจาก http://www.macronimous.com/resources/using_stored_procedure_with_mySQL_and_PHP.asp

กำลังลองศึกษาดูว่ามันคืออะไร.....



Ninenik 10-11-2010
 ความคิดเห็นที่ 4

 ขอบคุณครับ ตอนนี้พอจะเข้าใจปัญหาแล้วครับ

http://www.joeyrivera.com/2009/using-mysql-stored-procedures-with-php-mysqlmysqlipdo/

ไปได้ตัวอย่างตามลิงค์ข้างบนครับ เท่าที่เข้าใจ คิดว่า เพราะ function mysql เฉยๆ นั้น ไม่สามารถ return ค่า เป็น recordset ได้

ต้องไปใช้ mysqli แทน

 

ส่วนเรื่อง stored procedure นั้น ผมเองก็จะเริ่มศึกษาเหมือนกันครับ

เท่าที่ผมเข้าใจประโยชน์คร่าวๆคือ มันจะมีความปลอดภัย และเร็วกว่า query แบบปกติรึเปล่า



Likit 10-11-2010 10:20
 ความคิดเห็นที่ 5
ลิ้งค์ตามความเห็นที่ 4 แก้ปัญหาได้ ในด้านล่างข้างเนื้อหา เขาบอกวิธีแก้ไว้ให้คือ
เพิ่ม false,65536 เข้าไปในคำสั่ง mysql_connect
เช่น
mysql_connect("localhost","root","test") or die("Cannot connect the Server");   
เพิ่มไป จะได้เป็น
mysql_connect("localhost","root","test",false,65536) or die("Cannot connect the Server");         
 

เท่านี้ก็สามารถเรียกใช้งาน stored procedure ได้แล้ว   



Ninenik 10-11-2010
 ความคิดเห็นที่ 6

 โอ้วววว ผมไม่ได้อ่านในส่วนนั้น เลยมองข้ามไป ไปลองเทส mysqli แทน

ลองทำตามดังกล่าวแล้วครับ สามารถ return recordset ได้ด้วย 



Likit 10-11-2010 11:03
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ