Home > Backend Development > PHP Tutorial > How Can I Dynamically Bind MySQL Parameters in PHP?

How Can I Dynamically Bind MySQL Parameters in PHP?

Patricia Arquette
Release: 2024-12-01 19:11:14
Original
932 people have browsed it

How Can I Dynamically Bind MySQL Parameters in PHP?

Dynamically Binding MySQL Bind Parameters in PHP

As you've discovered, the bind_param method in PHP's MySQLi extension can be limited in terms of dynamically handling multiple parameters or parameterless queries. Below are strategies for addressing this issue:

Using call_user_func_array

The following code snippet allows you to dynamically create and bind an array of parameters:

if (strnatcmp(phpversion(), '5.3') >= 0) {
    $refs = array();
    foreach ($arr as $key => $value)
        $array_of_params[$key] = &$arr[$key];
    call_user_func_array(array(&$stmt, 'bind_params'), $array_of_params);
}
Copy after login

Using PHP 5.6 Syntax

In PHP 5.6 and later, you can take advantage of the unpacking operator and get_result() method:

public function get_custom_result($sql, $types = null, $params = null) {
    $stmt = $this->mysqli->prepare($sql);
    $stmt->bind_param($types, ...$params);

    if (!$stmt->execute()) return false;
    return $stmt->get_result();
}
Copy after login

Example:

$mysqli = new database(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$output = new search($mysqli);

$sql = "SELECT * FROM root_contacts_cfm WHERE root_contacts_cfm.cnt_id = ?
        AND root_contacts_cfm.cnt_firstname = ?
        ORDER BY cnt_id DESC";

$res = $output->get_custom_result($sql, 'ss', array('1', 'Tk'));
while ($row = res->fetch_assoc()) {
    echo $row['fieldName'] . '<br>';
}
Copy after login

These solutions provide more flexibility and dynamic binding capabilities for your MySQL queries.

The above is the detailed content of How Can I Dynamically Bind MySQL Parameters in PHP?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template