相同连接中的连续查询不起作用

问题描述:

以下代码正常工作,但行$connection->query('call user_create(145552, \'[email protected]\');');未在数据库中创建用户。相同连接中的连续查询不起作用

function updateFacebook($id) { 

    $connection = mysqli_connect('localhost', 'root', '', 'databasename'); 
    $count = $connection->query('call user_by_facebook_read(' . $id . ');')->num_rows; 

    if ($count == 0) { 

     $request = \Slim\Slim::getInstance()->request(); 
     $body = $request->getBody(); 
     $json = json_decode($body); 
     $token = $json->token; 

     $facebook = new Facebook(array(
      'appId' => 'value', 
      'secret' => 'value', 
      'cookie' => true 
     )); 

     $facebook->setAccessToken($token); 

     $facebook->api('/me/feed', 'post', array(
      'message' => 'message', 
      'picture' => 'https://www.google.com.br/images/srpr/logo4w.png', 
      'link' => 'https://www.google.com.br', 
      'description' => 'description', 
      'name' => 'name', 
      'caption'=> 'caption' 
     )); 

     $connection->query('call user_create(145552, \'[email protected]\');'); 

    } 

    $connection->close; 

    $json = json_encode(array(
     'r' => true 
    )); 

    echo $json;  

} 

如果我运行下面的代码也工作得很好:

$connection = mysqli_connect('localhost', 'root', '', 'databasename'); 
$connection->query('call user_create(145552, \'[email protected]\');'); 
$connection->close; 

如果我关闭$count后的连接和前再次打开它user_create调用它也适用。

发生了什么事?

+0

你知道,如果查询实际上是正在运行?换句话说,你确定你已经到了那行代码? – Revent 2013-04-29 17:20:40

+0

Yeh。我确定。看看我的编辑。 – lolol 2013-04-29 17:25:57

+0

你需要在结果上运行' - > close()',但是你放弃了。所以:'$ result = $ connection-> query(..); $ count = $ result-> num_rows; $ result-> close();'。 – Wrikken 2013-04-29 19:27:55

您需要对结果运行->close(),但是您放弃了该结果。所以:

$result = $connection->query(..); 
$count = $result->num_rows; 
$result->close(); 

and after CALL()s in MySQLi it seems to need this:

$connection->next_result();