Mysqli Проблема: количество элементов в строке определения типа не совпадает с числом переменных связывания - PullRequest
0 голосов
/ 14 сентября 2011

Теперь это звучит и кажется простым, но я действительно застрял.

Я пытаюсь выполнить этот запрос

$sql="insert into employers (id, username, password, email, contact_person, company_name, location_country, location_state,     location_address, website, profile, logo, subdomain, activation_key, ipaddress) values ('', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

$params="$reg_username, $reg_password, $reg_email, $reg_contact_person, $reg_companyname, $reg_country, $reg_state, $reg_address, $reg_website, $reg_profile, $reg_logo, $reg_subdomain, $reg_activation_key, $reg_ip";

$resultobj=otherquery ($sql, "sssssssssbssss", $params);

function otherquery ($sql, $types, $params)
    {
       $connection = getConnect ();  
       $result = $connection->prepare("$sql");
       $result->bind_param($types, $params);
       $status = $result->execute();
       $result->store_result();
       $return=array('obj'=>$result, 'status' => $status, 'data'=>array());
       return $return; 
    }

, и я продолжаю получать эту ошибку:

Warning: mysqli_stmt::bind_param() [mysqli-stmt.bind-param]: Number of elements in type definition string doesn't match number of bind variables in /home/xyz/public_html/xyzabc.com/functions.php on line 69

Что я не считаю правильно?

Спасибо

Ответы [ 2 ]

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

Я думаю, что я исправил проблему:

Я передал параметры в виде массива функции и использовал call_user_func_array.

$newparams = array_merge( (array) $types, $params);
call_user_func_array(array($result, 'bind_param'), $newparams);
0 голосов
/ 14 сентября 2011

Вы не можете использовать $params для хранения всех ваших параметров: bind_param() видит только два параметра при вызове с $params, следовательно, ошибка.Вы должны были бы передать их напрямую:

$result->bind_param($types, $reg_username, $reg_password, $reg_email, $reg_contact_person, ...);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...