Difference between bindParam and bindValue in PHP - GeeksforGeeks

03 May, 2022
PDOStatement::bindParam() Function
The PDOStatement::bindParam() function is an inbuilt function in PHP that is used to bind a parameter to the specified variable name. This function bound the variables, pass their value as input, and receives the output value, if any, of their associated parameter marker.Syntax:
bool PDOStatement::bindParam
( $parameter, $variable, $data_type, $length, $driver_options )
Parameters: This function accepts five parameters as mentioned above and described below:
$parameter: It is a parameter identifier that is used to prepare statements using name placeholders. It is the parameter name of the form : name.
$variable: This parameter is used to hold the name of the variable to bind to the SQL statement parameter.
$data_type: It is an explicit data type for the parameter using the PDO::PARAM_* constants.
$length: This parameter is used to hold the length of the data type.
$driver_options: This parameter holds the operation which needs to perform.
Return Value: This function returns True on success or false on failure.Program:  
php
<?php // setup PDO connection$db = new PDO('mysql:host=localhost;dbname=geeks','root',''); // Get username$username = 'geesforgeeks';     $stmt = $db->prepare("SELECT * FROM users WHERE user = :username"); // Use bindParam function$stmt->bindParam(':username', $username); $username = 'g4g';     $stmt->execute();?>
Note: The SQL statement will be executed using ‘g4g’ as the username because :username searches for $username upon execution, and the last known value of $username is ‘g4g’.
PDOStatement::bindValue() Function
The PDOStatement::bindValue() function is an inbuilt function in PHP that is used to bind a value to a parameter. This function binds a value to the corresponding named or question mark placeholder in the SQL which is used to prepare the statement. 
Syntax:
bool PDOStatement::bindValue( $parameter, $value, $data_type )
Parameters: This function accepts three parameters as mentioned above and described below:
$parameter: It is a parameter identifier that is used to prepare statements using name placeholders. It is the parameter name of the form:name.
$value: This parameter is used to hold the value to bind the parameter.
$data_type: It is an explicit data type for the parameter using the PDO::PARAM_* constants.
Return Value: This function returns True on success or False on failure.Program:
php
<?php // setup PDO connection$db = new PDO('mysql:host=localhost;dbname=geeks','root',''); // Get username$username = 'geeksforgeeks';     $stmt = $db->prepare("SELECT * FROM users WHERE user = :username"); // Use bindValue function$stmt->bindValue(':username', $username); $username = 'g4g';     $stmt->execute();?>
Note: The SQL statement will be executed using ‘geeksforgeeks’ as the username because the literal value “geeksforgeeks” has been bound to username prior to the bindValue() function. Further changes to $username will not be reflected in the prepared statement.Difference between bindParam() and bindValue():
bindParam(): The bindParam() function binds a parameter to a named or question mark placeholder in an SQL statement.The bindParam () function is used to pass variable not value.bindParam() function is executed at  runtime.bindParam is a PHP inbuilt function.Parameters can be modified in bindParam().Its return value is of boolean types.bindValue(): The bindValue() function binds a value to a named or question mark in the SQL statement.The bindValue() function is used to pass both value and variable. bindValue function is executed at compile time.bindValue() is an in built PHP function Parameters cannot be modified in bindValue().Its return value is of boolean types.
bindParam(): The bindParam() function binds a parameter to a named or question mark placeholder in an SQL statement.The bindParam () function is used to pass variable not value.bindParam() function is executed at  runtime.bindParam is a PHP inbuilt function.Parameters can be modified in bindParam().Its return value is of boolean types.
The bindParam() function binds a parameter to a named or question mark placeholder in an SQL statement.The bindParam () function is used to pass variable not value.bindParam() function is executed at  runtime.bindParam is a PHP inbuilt function.Parameters can be modified in bindParam().Its return value is of boolean types.
The bindParam() function binds a parameter to a named or question mark placeholder in an SQL statement.
The bindParam () function is used to pass variable not value.
bindParam() function is executed at  runtime.
bindParam is a PHP inbuilt function.
Parameters can be modified in bindParam().
Its return value is of boolean types.
bindValue(): The bindValue() function binds a value to a named or question mark in the SQL statement.The bindValue() function is used to pass both value and variable. bindValue function is executed at compile time.bindValue() is an in built PHP function Parameters cannot be modified in bindValue().Its return value is of boolean types.
The bindValue() function binds a value to a named or question mark in the SQL statement.The bindValue() function is used to pass both value and variable. bindValue function is executed at compile time.bindValue() is an in built PHP function Parameters cannot be modified in bindValue().Its return value is of boolean types.
The bindValue() function binds a value to a named or question mark in the SQL statement.
The bindValue() function is used to pass both value and variable.
 bindValue function is executed at compile time.
bindValue() is an in built PHP function 
Parameters cannot be modified in bindValue().
Its return value is of boolean types.
yogz214
mayank007rawa
sagartomar9927
Picked
Difference Between
PHP
Web Technologies
PHP
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Difference between var, let and const keywords in JavaScript
Difference Between Method Overloading and Method Overriding in Java
Difference between Prim's and Kruskal's algorithm for MST
Difference between Internal and External fragmentation
Difference between Compile-time and Run-time Polymorphism in Java
How to execute PHP code using command line ?
How to Insert Form Data into Database using PHP ?
How to convert array to string in PHP ?
PHP in_array() Function
How to pop an alert message box using PHP ?