Проблема с неправильным подсчетом параметров в MySQL - PullRequest
0 голосов
/ 14 сентября 2011

Я создал функцию, которую я намереваюсь использовать при выполнении моих запросов:

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 в строке 42

Неустранимая ошибка: вызов неопределенного метода mysqli:: result_metadata () в /home/kju/public_html/ejjk.com/functions.php в строке 45

Какова возможная проблема и как я могу ее исправить

Спасибо

1 Ответ

0 голосов
/ 14 сентября 2011

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...