Для запроса на выбор, я не думаю, что вам нужно получить все параметры, для перечисления будет достаточно получить идентификатор, имя или имя задания, я имею в виду один параметр, может быть два.
, но при вставке такого количества значений будет очень больно , Я бы использовал такую функцию:
Эта функция подсчитывает значения в массиве и привязке.
function bindQueryParams($sql, $param_type, $param_value_array) {
$param_value_reference[] = & $param_type;
for($i=0; $i<count($param_value_array); $i++) {
$param_value_reference[] = & $param_value_array[$i];
}
call_user_func_array(array(
$sql,
'bind_param'
), $param_value_reference);
}
Эта функция вставляет:
function insert($query, $param_type, $param_value_array) {
$sql = $this->conn->prepare($query);
$this->bindQueryParams($sql, $param_type, $param_value_array);
$sql->execute();
}
Использование:
$query = "INSERT INTO tbl_token_auth (username, password_hash, selector_hash, expiry_date) values (?, ?, ?,?)";
$result = insert($query, 'ssss', array($username, $random_password_hash, $random_selector_hash, $expiry_date));
ОБНОВЛЕНИЕ: Моя функция может быть использована для выбора следующим образом:
function runQuery($query, $param_type, $param_value_array) {
$sql = $this->conn->prepare($query);
//This function calling bindQueryParams function and auto creating binds
$this->bindQueryParams($sql, $param_type, $param_value_array);
$sql->execute();
$result = $sql->get_result();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$results[] = $row;
}
}
if(!empty($results)) {
return $results;
}
}
Использование:
$query = "Select * from your table where name = ?";
//You just need to variables in array
$result = runQuery($query, 's', array($your_variables));