Этот запрос должен вставить нового пользователя в таблицу 'users'
$user = DB::getInstance()->insert('users', array(
'username' => 'jim',
'password' => 'pass',
'salt' => 'salt'
)
);
Соответствующая вставка ()
public function insert($table, $fields = array())
{
if (count($fields)) {
$keys = array_keys($fields);
$values = null;
$x = 1;
foreach ($fields as $field) {
$values .= "?";
if ($x < count($fields)) {
$values .= ', ';
}
$x++;
}
$sql = "INSERT INTO users (`" . implode('`,`', $keys) . "`) VALUES ({$values})";
echo $sql;
if($this->queryDB($sql,$fields)){
echo "its good";
return true;
}else{
echo "bad query";
}
}
return false;
}
Попытка связать запрос с массивом значений ($param) в качестве второго параметра функции bind_param
$stmt = $this->mysqli->prepare($pattern);
$stmt->bind_param("sss", $param);
$stmt->execute();
Этот код постоянно возвращает ошибку «mysqli_stmt :: bind_param (): количество элементов в строке определения типа не соответствует числу переменных связывания».
Я также пробовал call_user_func_array, но продолжаю получать ту же ошибку.Что я делаю не так?