2015-12-02 4 views
0

Я пытаюсь добавить токен доступа пользователей к моей базе данных. Я использую библиотеку соединений php mysqlidb.Не удается обновить поле с помощью MysqliDb

Если я использую эту функцию ниже, я получаю эту ошибку:

<b>Warning</b>: mysqli_stmt::bind_param(): Number of elements in type definition string doesn't match number of bind variables in MysqliDb.php</b> on line <b>1092</b> 

function connectUser($id, $fbid, $accessToken) { 
    global $db; 
    $data = Array (
     'fbid' => $fbid, 
     "access_token" => $accessToken 
    ); 
    $db->where ('id', $id); 
    $db->update ('users', $data); 

} 

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

CadC5cqRAZArcBAKDZBZBA2AO5Beu1ZBWLFWl5FZClIuFvcx8jvdBZBTv3t3gplq32dm0gw99u62dQAAoBZC71bvgDYjy5RxnpjYzzUWoOlGmlZAwL4gtregzOF9mOqBtp24mybRVMR14mCmuA7YZAJ8kvxfonv151ZAadhlZCi1TKj8I5guOO2YZC2Vfs 

Затем попробуйте добавить его вручную, работает без ошибок:

function connectUser($id, $fbid, $accessToken) { 
     global $db; 
     $data = Array (
      'fbid' => $fbid, 
      "access_token" => 'CadC5cqRAZArcBAKDZBZBA2AO5Beu1ZBWLFWl5FZClIuFvcx8jvdBZBTv3t3gplq32dm0gw99u62dQAAoBZC71bvgDYjy5RxnpjYzzUWoOlGmlZAwL4gtregzOF9mOqBtp24mybRVMR14mCmuA7YZAJ8kvxfonv151ZAadhlZCi1TKj8I5guOO2YZC2Vfs' 
     ); 
     $db->where ('id', $id); 
     $db->update ('users', $data); 

    } 

Что гои ng здесь?

+0

Эта ошибка относится к тому, что в вашем запросе вы определяете количество переменных, но не привязываете их все к определенному значению. Дело не в ценности, а в том, сколько. –

ответ

0

Это предупреждение означает, что один из ваших входных параметров $ id, $ fbid или $ accessToken пуст. Запишите их где-нибудь, и вы увидите.

Смежные вопросы