Ben tabloların bir dizi içeren bir sql sorgusu var. It:
- Bir kullanıcı değişkenini ayarlar
- Bir saklı yordam çağrıları
- başka bir saklı yordam çağrıları
- bazı verileri seçer
Ben aynı kullanıcı altında, MySQL Workbench bunu test ettik çünkü sorgu, doğru olduğunu biliyorum. Sorgu şudur:
set @current_post = 535; /* 535 for testing, this will be a variable */
call under_user_type(@currrent_post, @user_type, @user_id);
call get_category(@current_post, @category);
select p.post_title, p.post_name,
(
swell_wp.post_score(p.ID)
) as score,
(
swell_wp.is_under_user(p.ID, @user_type, @user_id)
) as under_user,
(
swell_wp.is_under_category(p.ID, @category)
) as under_category
from wp_posts as p
where p.post_type = 'post'
and p.id != @current_post
and p.post_status = 'publish'
having (
under_user = true
or under_category = true
)
order by score desc;
bu sadece bir dize içinde depolanan: $sql
. Daha sonra PHP onunla bunu:
$query = new MySQLi(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$query->multi_query($sql);
do {
$query->next_result();
} while( ! $result = $query->use_result() );
print_r($result);
Bu bir sonuç nesne basar ama bir o boştur. Bunun üzerinde yineleme için çalışıyor ya da herhangi bir sonuç üretmez.
Ben yanlış ne yapıyorum? Hatta bu gibi kullanıcı değişkenleri kullanabilir miyim? Yoksa saklanan fonksiyonlara prosedürleri açmak ve üç ayrı sorguları yapmak gerekir?