کمک برای حل یک مشکل عجیب در استفاده از procedure در php

سلام

من به یک مشکل خیلی عجیب برخورد کردم که در هیچ سایت خارجی هم حتی کسی مشکلی مشابه نداشته که بتونه کمکم کنی لطفا دوستانی که میتونن راهنمایی کنن دریغ نکنن.

من یک دیتابیس mysql دارم که بعضی از کوئری هام رو به صورت پروسیجر داخلش نوشتم و در php اون ها رو صدا میزنم و اجرا میشن و از اون بابت مشکلی نیست.

اما مشکل از اینجا شروع میشه که اگر من در برنامه php خودم از طریق صدا زدن پروسیجر کوری اجرا کنم اون کوئری اجرا میشه اما بعد از اون هر جای برنامه اگه پروسیجری دیگه رو صدا بزنم یا حتی کوئری رو مستقیم اجرا کنم اون کوئری به هیچ وجه رو دیتابیس اجرا نمیشه!

و این برام تبدیل به یک مشکل بزرگ شده براتون نمونه میزارم تا کاملا متوجه منظورم بشید

این یک نمونه پروسیجری که من ساختم:

DELIMITER $$
CREATE PROCEDURE pro_test(IN _phone VARCHAR(20) )
BEGIN
select * FROM user WHERE user_phone=_phone;
END$$
DELIMITER ;

و این هم یک نمونه از کد php من

<?php

require_once("include.php");

$response = "";

$connect = @mysqli_connect($hostname , $username , $password , $database );
if( $connect )
{
$inquery = "CALL pro_test('09123456789')";

$result =@mysqli_query( $connect , $inquery );
$rows = @mysqli_num_rows( $result );

if( $rows > 0 )
{
$getquery = "SELECT * FROM user WHERE user_phone='09123456789'";
$result = @mysqli_query( $connect , $getquery );

if( $result ) // دقیقا اینجا وقتی چک میکنه کوری انجام شده یا نه نتیجه منفیه!
{
$response = "done";
}
else
{
$response = "error";
}
}
else
{
$response = "not found";
}
}
else
{
$response = "not connect!";
}

die( json_encode($response) );

?>

در کد بالا وقتی من کوئری اول رو با پروسیجر اجرا میکنم با اینکه کوری اول درست اجرا میشه و شرط بر قرار میشه ولی کوری دوم شکست میخوره و هیچی بر نمیگردونه این در صورتیه که اگه کوری اول رو رو به صورت عادی یعنی به شکل زیر بنویسم مشکل بر طرف میشه!

$inquery = "select * FROM user WHERE user_phone=09123456789";

کمک برای حل یک مشکل عجیب در استفاده از procedure در php


خرید بک لینک
کپی رابت محفوظ است اخبار ایران و جهان
قدرت گرفته از niloblog