Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > call stored procedure ตัวเดียวกัน 3 ครั้งไม่ได้ครับ



 

call stored procedure ตัวเดียวกัน 3 ครั้งไม่ได้ครับ

 



Topic : 109213



โพสกระทู้ ( 133 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook



อาการคือ Call Store ที่ 1 ได้ครับ 2-3 ไม่ได้ เลยลองย้าย คำสั่ง Call Store ที่ 2 มาไว้อัน 1 กลับเรียกได้ จะทำยังไงให้มันเรียก พร้อมกัน โดย Store ตัวเดียวกัน แต่ผลออกมา 3 แบบ คนละตัวแปร อะครับ

มันขึ้น ERROR ว่า Fatal error: Call to a member function fetch_assoc() on a non-object in C:\AppServ\www\IT\helpdesk_detail.php on line 95


Code (C#)
<?php
session_start();
include("checkauthen.php");
include("connect.php");

$mysqli->set_charset('utf8');	
$resultRecent = $mysqli->query("CALL `pt_it`.`spgetHelpDeskQueue`('".$_SESSION['employee_ID']."','1','3');");

$mysqli->set_charset('utf8');
$resultAccept = $mysqli->query("CALL `pt_it`.`spgetHelpDeskQueue`('".$_SESSION['employee_ID']."','2','3');");

$mysqli->set_charset('utf8');
$resultFinish = $mysqli->query("CALL `pt_it`.`spgetHelpDeskQueue`('".$_SESSION['employee_ID']."','3','3');");
?>
<!DOCTYPE html>
<html>
    <head>
        <title>IT Support</title>
        <link rel="stylesheet" href="css/stylesheet.css" type="text/css" />
        <link href="css/icon.ico" rel="icon" type="image/x-icon" />
    <style type="text/css">
    .center {
	text-align: center;
}
    body,td,th {
	font-family: THSarabunNew, sans-serif;
}
    body {
	background-image: url(css/BG/IT.png);
}
    </style>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>
    <body>
    
    
    <table width="1024" border="0" align="center">
      <tr>
        <td align="center">
        <table width="100%" border="0">
      <tr>
        <td colspan="3" align="center" bgcolor="#FF00FF"><p>BANNER</p></td>
        </tr>
      <tr>
        <td width="13%" rowspan="2" bgcolor="#00FFFF"><p><a href="logout.php">Logout</a></p>
          <p><a href="index.php">Main</a></p>
          <p>Help Desk</p></td>
        <td align="left" bgcolor="#00FF00">Help Desk</td>
        <td align="right" bgcolor="#00FF00">ยินดีต้อนรับ <? echo $_SESSION['Name'] ?></td>
      </tr>
      <tr>
      
        <td colspan="2" align="center">
        <? echo $resultAccept->num_rows;?> ใบแจ้งล่าสุด
        	<table width="100%" border="1">
              
              <tr>
                <td><table width="100%" border="0">
                  <tr>
                    <td width="20%" align="center" bgcolor="#FFCCCC">วันที่ให้เข้าปฏิบัติงาน</td>
                    <td width="50%" align="center" bgcolor="#FFCCCC">รายละเอียด</td>
                    <td width="12%" align="center" valign="middle" bgcolor="#FFCCCC">สถานะ</td>
                  </tr>
                  <tr>
                    <?
			$colour=1;
          while ($item = $resultRecent->fetch_assoc()) {
		  ?>
                  <tr <? if(($colour%2)==0){?>bgcolor="#D6D6D6"<? }else{?>bgcolor="#8080FF"<? }?>>
                    <td align="center"><span class="center"><? echo $item[date_inform_service] ?></span></td>
                    <td align="center"><span class="center"><? echo $item[detail] ?></span></td>
                    <td align="center"><span class="center"><? echo $item[name_status] ?></span></td>
                  </tr>
                  <?
		  $colour++;
		  }
          $resultRecent->free();
		  ?>
                </table></td>
              </tr>
            </table>
            รับเรื่องแล้ว
            <table width="100%" border="1">
              <tr>
                <td><table width="100%" border="0">
                  <tr>
                    <td width="20%" align="center" bgcolor="#FFCCCC">วันที่ให้เข้าปฏิบัติงาน</td>
                    <td width="50%" align="center" bgcolor="#FFCCCC">รายละเอียด</td>
                    <td width="12%" align="center" valign="middle" bgcolor="#FFCCCC">สถานะ</td>
                  </tr>
                  <tr>
                    <?
			$colour=1;
          while ($item = $resultAccept->fetch_assoc()) {
		  ?>
                  <tr <? if(($colour%2)==0){?>bgcolor="#D6D6D6"<? }else{?>bgcolor="#8080FF"<? }?>>
                    <td align="center"><span class="center"><? echo $item[date_inform_service] ?></span></td>
                    <td align="center"><span class="center"><? echo $item[detail] ?></span></td>
                    <td align="center"><span class="center"><? echo $item[name_status] ?></span></td>
                  </tr>
                  <?
		  $colour++;
		  }
          $resultAccept->free();
		  ?>
                </table></td>
              </tr>
              <tr>
                <td>&nbsp;</td>
              </tr>
            </table>
            รายการเสร็จสิ้น
            <table width="100%" border="1">
              <tr>
                <td><table width="100%" border="0">
                  <tr>
                    <td width="20%" align="center" bgcolor="#FFCCCC">วันที่ให้เข้าปฏิบัติงาน</td>
                    <td width="50%" align="center" bgcolor="#FFCCCC">รายละเอียด</td>
                    <td width="12%" align="center" valign="middle" bgcolor="#FFCCCC">สถานะ</td>
                  </tr>
                  <tr>
                    <?
			$colour=1;
          while ($item = $resultFinish->fetch_assoc()) {
		  ?>
                  <tr <? if(($colour%2)==0){?>bgcolor="#D6D6D6"<? }else{?>bgcolor="#8080FF"<? }?>>
                    <td align="center"><span class="center"><? echo $item[date_inform_service] ?></span></td>
                    <td align="center"><span class="center"><? echo $item[detail] ?></span></td>
                    <td align="center"><span class="center"><? echo $item[name_status] ?></span></td>
                  </tr>
                  <?
		  $colour++;
		  }
          $resultFinish->free();
		  ?>
                </table></td>
              </tr>
              <tr>
                <td>&nbsp;</td>
              </tr>
            </table>
            <p>&nbsp;            </p>
            <p>
              <input type="submit" name="Add" id="Add" value="Add" onClick="window.location.href='helpdesk_add.php'"/>
          </p></td>
      </tr>
    </table>        
        </td>        
      </tr>      
    </table>
    </body>
</html>


ขอบคุณมากครับ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-06-16 11:58:17 By : teerapat_kan View : 1196 Reply : 8
 

 

No. 1



โพสกระทู้ ( 1,521 )
บทความ ( 2 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Facebook

mysqli_stmt::store_result






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-16 17:38:00 By : Krungsri
 


 

No. 2



โพสกระทู้ ( 133 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ยัง งงๆ อยู่เลยอะครับ แต่ก็ขอบคุณมากนะครับ

เท่าที่ผมเข้าใจคือ Mysqli จะ ต้องเอา Result ที่เรา Query ได้ไป Dump ใส่อะไรไว้สักอย่างแล้ว ก็ clearStoredResults คือ Function ที่เราใส่ไว้ใน Code เราถูกต้องไหมครับ จึงดำเนินการ Query อันต่อไปได้ ถูกต้องไหมครับ มีความเห็นอย่างไรเสนอได้นะครับ งมมาตลอดครึ่งเช้าแล้วครับ Error ที่เดิมเลยครับ ขอบคุณมากครับ

Code (PHP)
<?php
session_start();
include("checkauthen.php");
include("connect.php");

$mysqli->set_charset('utf8');	
$resultRecent = $mysqli->query("CALL `pt_it`.`spgetHelpDeskQueue`('".$_SESSION['employee_ID']."','1','3');", MYSQLI_STORE_RESULT);

/////////////////////////////////Start Function ที่เพิ่มเข้าไปครับ////////////////////////////////////////////////////////////////////////////////////////////
#------------------------------------------
function clearStoredResults($mysqli_link)
{
#------------------------------------------
    while($mysqli_link->next_result()){
      if($l_result = $mysqli_link->store_result()){
              $l_result->free();
      }
    }
}
/////////////////////////////////End Function ที่เพิ่มเข้าไปครับ////////////////////////////////////////////////////////////////////////////////////////////
?>
<!DOCTYPE html>
<html>
    <head>
        <title>IT Support</title>
        <link rel="stylesheet" href="css/stylesheet.css" type="text/css" />
        <link href="css/icon.ico" rel="icon" type="image/x-icon" />
    <style type="text/css">
    .center {
	text-align: center;
}
    body,td,th {
	font-family: THSarabunNew, sans-serif;
}
    body {
	background-image: url(css/BG/IT.png);
}
    </style>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>
    <body>
    
    
    <table width="1024" border="0" align="center">
      <tr>
        <td align="center">
        <table width="100%" border="0">
      <tr>
        <td colspan="3" align="center" bgcolor="#FF00FF"><p>BANNER</p></td>
        </tr>
      <tr>
        <td width="13%" rowspan="2" bgcolor="#00FFFF"><p><a href="logout.php">Logout</a></p>
          <p><a href="index.php">Main</a></p>
          <p>Help Desk</p></td>
        <td align="left" bgcolor="#00FF00">Help Desk</td>
        <td align="right" bgcolor="#00FF00">ยินดีต้อนรับ <? echo $_SESSION['Name'] ?></td>
      </tr>
      <tr>
      
        <td colspan="2" align="center">
        ใบแจ้งล่าสุด
        	<table width="100%" border="1">
              
              <tr>
                <td><table width="100%" border="0">
                  <tr>
                    <td width="20%" align="center" bgcolor="#FFCCCC">วันที่ให้เข้าปฏิบัติงาน</td>
                    <td width="50%" align="center" bgcolor="#FFCCCC">รายละเอียด</td>
                    <td width="12%" align="center" valign="middle" bgcolor="#FFCCCC">สถานะ</td>
                  </tr>
                  <tr>
                    <?
			$colour=1;
          while ($item = $resultRecent->fetch_assoc()) {
		  ?>
                  <tr <? if(($colour%2)==0){?>bgcolor="#D6D6D6"<? }else{?>bgcolor="#8080FF"<? }?>>
                    <td align="center"><span class="center"><? echo $item[date_inform_service] ?></span></td>
                    <td align="center"><span class="center"><? echo $item[detail] ?></span></td>
                    <td align="center"><span class="center"><? echo $item[name_status] ?></span></td>
                  </tr>
                  <?
		  $colour++;
		  }

/////////////////////////////////Start เรียกFunction ที่เพิ่มเข้าไปครับ////////////////////////////////////////////////////////////////////////////////////////////
		   clearStoredResults($mysqli);
/////////////////////////////////End เรียกFunction ที่เพิ่มเข้าไปครับ////////////////////////////////////////////////////////////////////////////////////////////

		  $mysqli->set_charset('utf8');
			$resultAccept = $mysqli->query("CALL `pt_it`.`spTest`('".$_SESSION['employee_ID']."','2','3');",MYSQLI_STORE_RESULT);
		  ?>
                </table></td>
              </tr>
            </table>
<? echo $resultAccept->num_rows;?>รับเรื่องแล้ว
            <table width="100%" border="1">
              <tr>
                <td><table width="100%" border="0">
                  <tr>
                    <td width="20%" align="center" bgcolor="#FFCCCC">วันที่ให้เข้าปฏิบัติงาน</td>
                    <td width="50%" align="center" bgcolor="#FFCCCC">รายละเอียด</td>
                    <td width="12%" align="center" valign="middle" bgcolor="#FFCCCC">สถานะ</td>
                  </tr>
                  <tr>
                    <?
			$colour=1;
			
          while ($item = $resultAccept->fetch_assoc()) {
		  ?>
                  <tr <? if(($colour%2)==0){?>bgcolor="#D6D6D6"<? }else{?>bgcolor="#8080FF"<? }?>>
                    <td align="center"><span class="center"><? echo $item[date_inform_service] ?></span></td>
                    <td align="center"><span class="center"><? echo $item[detail] ?></span></td>
                    <td align="center"><span class="center"><? echo $item[name_status] ?></span></td>
                  </tr>
                  <?
		  $colour++;
		  }
          $resultAccept->free();
		  ?>
                </table></td>
              </tr>
              <tr>
                <td>&nbsp;</td>
              </tr>
            </table>
            รายการเสร็จสิ้น
            <table width="100%" border="1">
              <tr>
                <td><table width="100%" border="0">
                  <tr>
                    <td width="20%" align="center" bgcolor="#FFCCCC">วันที่ให้เข้าปฏิบัติงาน</td>
                    <td width="50%" align="center" bgcolor="#FFCCCC">รายละเอียด</td>
                    <td width="12%" align="center" valign="middle" bgcolor="#FFCCCC">สถานะ</td>
                  </tr>
                  <tr>
                    <?
			$colour=1;
          while ($item = $resultFinish->fetch_assoc()) {
		  ?>
                  <tr <? if(($colour%2)==0){?>bgcolor="#D6D6D6"<? }else{?>bgcolor="#8080FF"<? }?>>
                    <td align="center"><span class="center"><? echo $item[date_inform_service] ?></span></td>
                    <td align="center"><span class="center"><? echo $item[detail] ?></span></td>
                    <td align="center"><span class="center"><? echo $item[name_status] ?></span></td>
                  </tr>
                  <?
		  $colour++;
		  }
          $resultFinish->free();
		  ?>
                </table></td>
              </tr>
              <tr>
                <td>&nbsp;</td>
              </tr>
            </table>
            <p>&nbsp;            </p>
            <p>
              <input type="submit" name="Add" id="Add" value="Add" onClick="window.location.href='helpdesk_add.php'"/>
          </p></td>
      </tr>
    </table>
        /td>        
      </tr>      
    </table>
    </body>
</html>



ประวัติการแก้ไข
2014-06-17 14:00:30
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-17 13:58:14 By : teerapat_kan
 

 

No. 3



โพสกระทู้ ( 133 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

รบกวนด้วยนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-19 00:23:33 By : teerapat_kan
 


 

No. 4



โพสกระทู้ ( 133 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

.
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-23 10:03:25 By : teerapat_kan
 


 

No. 5



โพสกระทู้ ( 133 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ลองเอา C# มาเรียก store ตัวเดียวกัน 3 ครั้งได้ทั้งหมดเลยครับ

Code (C#)
 DataTable dtone = Database.GetData(strconMySql,"CALL `pt_it`.`spgetHelpDeskQueue`('139','1','3');");
 DataTable dtTwo = Database.GetData(strconMySql, "CALL `pt_it`.`spgetHelpDeskQueue`('139','2','3');");
 DataTable dtThree = Database.GetData(strconMySql, "CALL `pt_it`.`spgetHelpDeskQueue`('139','3','3');");


แต่พอเอา PHP มาเรียกกลับได้แค่บรรทัดแรกเท่านั้นที่ได้ค่ากลับมาครับ เท่าที่อ่าน Mysqli ก่อนเรียก Store ตัวที่สองต้อง Clear ค่าหรือ Dump อะไรสักอย่างก่อนหรือเปล่าครับ
http://www.codeblog.co.uk/2008/07/14/web-development/mysqli-php-cannot-execute-stored-procedure-twice/
http://bytes.com/topic/php/answers/432228-mysqli-cant-access-stored-procedure-twice

แต่ก็ยังไม่ได้มีใครแนะนำให้หน่อยนะครับ ตาม Code ด้านบนครับ ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-23 10:14:51 By : teerapat_kan
 


 

No. 6



โพสกระทู้ ( 9,556 )
บทความ ( 2 )



สถานะออฟไลน์


007.$resultRecent = $mysqli->query("CALL `pt_it`.`spgetHelpDeskQueue`('".$_SESSION['employee_ID']."','1','3');", MYSQLI_STORE_RESULT);


ลองเช็คแบบง่ายๆ ก่อนไหมครับ

แก้เป็น
Code (PHP)
$resultRecent = $mysqli->query($qr="CALL `pt_it`.`spgetHelpDeskQueue`('".$_SESSION['employee_ID']."','1','3');", MYSQLI_STORE_RESULT);
// แทรกบันทัดข้างล่างนี้ครับ
if(!$resultRecent){
  echo $qr, "<br/>\n";
   printf("Error: %s\n", $mysqli->error); exit;
}


บันทัดไหนที่มีการ query ก็ทำแบบเดียวกันเป็น pattern เลยครับ
พอโปรแกรมสมบูรณ์ดีแล้ว ค่อตัดตัวเช็คพวกนี้ออกครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-23 10:33:09 By : Chaidhanan
 


 

No. 7



โพสกระทู้ ( 133 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 6 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-06-23 10:33:09
รายละเอียดของการตอบ ::

CALL `pt_it`.`spgetHelpDeskQueue`('139','1','3');
Error: Commands out of sync; you can't run this command now

มันขึ้น ERROR แบบนี้หมายความว่าอย่างไรครับ (ผมเอาไปไว้ หลังเรียก store ครั้งที่ 2 นะครับ ก่อน fetch_assoc() เพราะว่าเอาไปไว้หลังเรียก store ครั้งที่ 1 มันไม่ ERROR ใดๆครับ) ปล. ผมมือใหม่ PHP นะครับ ปกติเขียน C# ครับ ขอบคุณมากครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-23 10:44:57 By : teerapat_kan
 


 

No. 8



โพสกระทู้ ( 9,556 )
บทความ ( 2 )



สถานะออฟไลน์


ไว้ศึกษาตรงนี้ ก่อนครับ แต่ตอนนี้
คงต้องแก้โดยการ ทำ buffer เก็บ result ไว้ก่อนแล้วครับ แล้วก็ free resut ไปก่อนที่จะเรียกใหม่
แต่อันนี้ไม่สดวกกับข้อมูลเยอะๆ ไม่รู้ว่า Server จะเก็บได้เยอะขนาดไหน

Code (PHP)
function saveResult($result){
     $buffer=array()
     while ($item = $resultAccept->fetch_assoc()) {
          $buffer[]=$item;
     } $result->free();
     return $buffer;
}

$buf=saveResult($resultName);

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-23 11:07:10 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : call stored procedure ตัวเดียวกัน 3 ครั้งไม่ได้ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่