JBTALKS.CC

标题: mysqli 怎么 得到 Store Procedure 的Result ? [打印本页]

作者: 宅男-兜着走    时间: 2009-10-12 01:46 AM
标题: mysqli 怎么 得到 Store Procedure 的Result ?
如题,mysqli->query("CALL myStoreprocedure('$myvalue')");

但是要怎么 return 是不是成功 insert了 -.-|||
作者: Super-Tomato    时间: 2009-10-12 01:57 AM
原帖由 宅男-兜着走 于 2009-10-12 01:46 AM 发表
如题,mysqli->query("CALL myStoreprocedure('$myvalue')");

但是要怎么 return 是不是成功 insert了 -.-|||


不明白你的 sql string??

query 參數傳遞 sql string 之後,  query 會回傳 true 或 false
作者: 宅男-兜着走    时间: 2009-10-12 02:11 AM
原帖由 Super-Tomato 于 2009-10-12 01:57 AM 发表


不明白你的 sql string??

query 參數傳遞 sql string 之後,  query 會回傳 true 或 false

// 这个是 mysql store procedure 但是好像 insert 了, 不会return 值。
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_all_bean`()
BEGIN
SELECT * FROM nb_netbean;
END

我的CLASS。

class database {

var $mysql;

public function database(){
   $this->mysql = new mysqli("localhost" ,"root" , "" , "net_bean_db" );
  }


public function insert_new_bean($beanbean , $bean_name){
if(isset($beanbean) || isset($bean_name)){
   
$result = $this->mysql->query("CALL insert_new_bean('$beanbean' , '$bean_name')");

return $result->store_result; // 看来这句是 return 空的, 因为我的 store procedure 没 set return。
}else{
    return null;
}

}



所以基本上就是如此。
作者: Super-Tomato    时间: 2009-10-12 02:19 AM
原帖由 宅男-兜着走 于 2009-10-12 02:11 AM 发表




class database {

var $mysql;

public function database(){
   $this->mysql = new mysqli("localhost" ,"root" , "" , "net_bean_db" );
  }


public function insert_new_bean($beanbean , $bean_name){
if(isset($beanbean) || isset($bean_name)){
   
$result = $this->mysql->query("CALL insert_new_bean('$beanbean' , '$bean_name')");

return $result->store_result; // 看来这句是 return 空的, 因为我的 store procedure 没 set return。
}else{
    return null;
}

}



所以基本上就是如此。



$this->mysql->query("CALL insert_new_bean('$beanbean' , '$bean_name')");
這是甚麼 sql query 啊?? 你已經學了 SQL 嗎??

$result->store_result;
變數與函數是有差別的  store_result != store_result()

作者: 宅男-兜着走    时间: 2009-10-12 02:36 AM
原帖由 Super-Tomato 于 2009-10-12 02:19 AM 发表



$this->mysql->query("CALL insert_new_bean('$beanbean' , '$bean_name')");
這是甚麼 sql query 啊?? 你已經學了 SQL 嗎??

$result->store_result;
變數與函數是有差別的  store_result != store_ ...


store_result() < 我试过, 但是他报 Error。
抱歉~ 那个是我最近看到的 SQL 写法, 是直接写在 Store Procedure 的。 但是我不会怎么回传。
作者: Super-Tomato    时间: 2009-10-12 02:45 AM
原帖由 宅男-兜着走 于 2009-10-12 02:36 AM 发表


store_result() < 我试过, 但是他报 Error。
抱歉~ 那个是我最近看到的 SQL 写法, 是直接写在 Store Procedure 的。 但是我不会怎么回传。


CALL 在 mysql 中是呼叫某個函數, 而該函數則是回傳 sql query, 如 return "SELECT * FROM......."
作者: 宅男-兜着走    时间: 2009-10-12 03:43 AM
标题: 回复 #6 Super-Tomato 的帖子
public function insert_new_bean($beanbean , $bean_name){
if(strlen($beanbean) > 0  && strlen($bean_name) > 0 ){
return @$this->mysql->query("CALL insert_new_bean('$beanbean' , '$bean_name')");
}
}

这样就能了 , 呵呵呵, 原来还会顺便回传是否有没有insert 到的。 跟 MYSQL_QUERY 的效果是一样的。




欢迎光临 JBTALKS.CC (https://jbtalks.my/) Powered by Discuz! X2.5