mysqli参数计数错误的问题


Problem with wrong parameter count in mysqli

我创建了一个函数,我打算使用在运行我的查询:

function selectquery ($sql, $params)
    {
       $connection = getConnect ();
       $result = $connection->prepare("$sql");
       $result->bind_param($params);
       $status = $result->execute();
       $return=array('obj'=>$result, 'status' => $status, 'data'=>array());
       $meta = $connection->result_metadata();  
       while ( $field = $meta->fetch_field() ) 
       {  
            $parameters[] = &$row[$field->name];  
       }  
       call_user_func_array(array($result, 'bind_result'), $parameters);  
       while ( $stmt->fetch()) 
       {  
          $x = array();  
          foreach( $row as $key => $val ) 
          {  
             $x[$key] = $val;  
          }  
          $return['data'][] = $x;  
       } 
       $result->close(); 
       return $return; 
    }

我是这样运行查询的:

$resultobj=selectquery ("select id from employers where subdomain = ? ", "s, $reg_subdomain");

出现如下错误:

警告:mysqli_stmt::bind_param()在/home/kju/public_html/ejjk.com/functions.php中的参数计数错误

致命错误:调用未定义方法mysqli::result_metadata()在/home/kju/public_html/ejjk.com/functions.php第45行

可能的问题是什么,我怎样才能解决它

谢谢

mysqli_stmt::bind_param期望2个参数,但您传递了一个:

function selectquery ($sql, $params) . {}
 ...
selectquery("....? ", "s, $reg_subdomain" // 1 string parameter, not 2);
// it should be
function selectquery ($sql, $types, $params) . {
 ... bind_param($sql, $types, $params);
}
selectquery("....? ", "s", $reg_subdomain // 2 parameters);