10/10/2018, 10:07

Không dùng được Store Procedure trong PHP

hix, sao mình dùng đoạn code này nhưng sao không lấy được dữ liệu

<?php
$conn = mysql_connect('localhost', 'root', ');
mysql_select_db('trial', $conn);
$row = mysql_fetch_array(mysql_query('CALL selectAll()'));
?>

Mình đã dùng command line để chạy thử procedure trong mysql và ra kết quả đúng. Nhưng tại sao php lại hiển thị lỗi "PROCEDURE trial.selectAll can't return a result set in the given context"
Ai biết chỉ giùm mình cái.
(Nếu dùng query thông thừong như: mysql_query("Select * from mytable"); thì vẫn truy vấn được dữ liệu bình thường, chỉ riêng có store procedure là không được).
kenphan19 viết 12:20 ngày 10/10/2018
ít nhất cũng phải gởi cái đoạn sql cho người ta xem chớ ! nói thế biết đường quái gì mà trả lời ...
moihocIT viết 12:22 ngày 10/10/2018
sax, mình đã nói quá rõ ràng rồi là đoạn sql không có lỗi vì mình đã test bằng các chương trình mysql query và hiển thị kết quả đúng, còn nếu bạn muốn xem đoạn sql thì đây:
DELIMITER $$

DROP PROCEDURE IF EXISTS `selectAll` $$
CREATE DEFINER=`root`@`%` PROCEDURE `selectAll`()
BEGIN
SELECT * FROM mytable;
END $$

DELIMITER ;
pcdinh viết 12:18 ngày 10/10/2018
Để dùng SP trong libmysql thì bạn cần chỉ định client flag là 131072 hay 65536 cho mysql_connect

VD:
mysql_connect($host, $username, $password, false, 65536)
moihocIT viết 12:17 ngày 10/10/2018
Được gửi bởi pcdinh
Để dùng SP trong libmysql thì bạn cần chỉ định client flag là 131072 hay 65536 cho mysql_connect

VD:
mysql_connect($host, $username, $password, false, 65536)
Chính xác, mình đã tìm ra được cách rồi, vào đây mới gặp bạn trả lời, giá bạn trả lời sớm hơn tí thì mình khỏe rồi.
Dù sao cũng thanks nha.

Tại mình thường dùng bộ cài apache trên windows nên dùng Store Pro bình thừong, nay mình chuyển qua dùng trên Linux nên mới gặp lỗi.
Bài liên quan
0