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

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

ถามเรื่อง การใช้ 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 110.164.187.xxx 09-11-2010 16:15:48

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

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


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


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

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

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

$sql = CALL sp_test();



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

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



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

 อะไรคือ 

Stored Procedure


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

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



Ninenik 183.89.222.xxx 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 110.164.187.xxx 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 183.89.222.xxx 10-11-2010
 ความคิดเห็นที่ 6

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

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



Likit 110.164.187.xxx 10-11-2010 11:03
1






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