maxdb_stmt_bind_param

maxdb_stmt::bind_param

(PECL maxdb >= 1.0)

maxdb_stmt_bind_param -- maxdb_stmt::bind_paramBinds variables to a prepared statement as parameters

说明

过程化风格

maxdb_stmt_bind_param ( resource $stmt , string $types , mixed &$var1 [, mixed &$... ] ) : bool

面向对象风格

maxdb_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] ) : bool

过程化风格 (extended syntax):

maxdb_stmt_bind_param ( resource $stmt , string $types , array &$var ) : bool

面向对象风格 (extended syntax):

maxdb_stmt::bind_param ( string $types , array &$var ) : bool

maxdb_stmt_bind_param() is used to bind variables for the parameter markers in the SQL statement that was passed to maxdb_prepare(). The string types contains one or more characters which specify the types for the corresponding bind variables.

The extended syntax of maxdb_stmt_bind_param() allows to give the parameters as an array instead of a variable list of PHP variables to the function. If the array variable has not been used before calling maxdb_stmt_bind_param(), it has to be initialized as an emtpy array. See the examples how to use maxdb_stmt_bind_param() with extended syntax.

Variables for SELECT INTO SQL statements can also be bound using maxdb_stmt_bind_param(). Parameters for database procedures can be bound using maxdb_stmt_bind_param(). See the examples how to use maxdb_stmt_bind_param() in this cases.

If a variable bound as INTO variable to an SQL statement was used before, the content of this variable is overwritten by the data of the SELECT INTO statement. A reference to this variable will be invalid after a call to maxdb_stmt_bind_param().

For INOUT parameters of database procedures the content of the bound INOUT variable is overwritten by the output value of the database procedure. A reference to this variable will be invalid after a call to maxdb_stmt_bind_param().

Type specification chars
Character Description
i corresponding variable has type integer
d corresponding variable has type double
s corresponding variable has type string
b corresponding variable is a blob and will be sent in packages

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

范例

Example #1 面向对象风格

<?php
$maxdb 
= new maxdb('localhost''MONA''RED''DEMODB');

/* check connection */
if (maxdb_connect_errno()) {
   
printf("Connect failed: %s\n"maxdb_connect_error());
   exit();
}

$maxdb->query ("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query ("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt $maxdb->prepare("INSERT INTO temp.mycity VALUES (?, ?, ?)");
$stmt->bind_param('sss'$zip$name$state);

$zip '11111';
$name 'Georgetown';
$state 'NY';

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n"$stmt->affected_rows);

/* close statement and connection */
$stmt->close();

/* Clean up table CountryLanguage */
$maxdb->query("DELETE FROM temp.mycity WHERE name='Georgetown'");
printf("%d Row deleted.\n"$maxdb->affected_rows);

/* close connection */
$maxdb->close();
?>

Example #2 过程化风格

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* check connection */
if (!$link) {
   
printf("Connect failed: %s\n"maxdb_connect_error());
   exit();
}

maxdb_query ($link"CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query ($link"INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt maxdb_prepare($link"INSERT INTO temp.mycity VALUES (?, ?, ?)");
maxdb_stmt_bind_param($stmt'sss'$zip$name$state);

$zip '11111';
$name 'Georgetown';
$state 'NY';

/* execute prepared statement */
maxdb_stmt_execute($stmt);

printf("%d Row inserted.\n"maxdb_stmt_affected_rows($stmt));

/* close statement and connection */
maxdb_stmt_close($stmt);

/* Clean up table CountryLanguage */
maxdb_query($link"DELETE FROM temp.mycity WHERE name='Georgetown'");
printf("%d Row deleted.\n"maxdb_affected_rows($link));

/* close connection */
maxdb_close($link);
?>

以上例程的输出类似于:

1 Row inserted.
1 Row deleted.

Example #3 过程化风格 (SELECT INTO)

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* check connection */
if (!$link) {
   
printf("Connect failed: %s\n"maxdb_connect_error());
   exit();
}

/* Performing SQL query */
$stmt maxdb_prepare ($link"SELECT price INTO ? FROM hotel.room where hno = ? and type = ?");
if (!
$stmt) {
  
printf ("Prepare failed: %s\n"maxdb_error($link));
}

$hno "50";
$rtype "suite";

maxdb_stmt_bind_param($stmt'dss'$price$hno$rtype);
maxdb_stmt_execute($stmt);

printf ("%f\n"$price);

maxdb_stmt_close ($stmt);
?>

以上例程的输出类似于:

21.600000

Example #4 过程化风格 (DB procedure)

<?php
$link 
maxdb_connect("localhost""MONA""RED""DEMODB");

/* check connection */
if (!$link) {
   
printf("Connect failed: %s\n"maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP DBPROC test_proc");
maxdb_report (MAXDB_REPORT_ERROR);

$query "create dbproc test_proc (INOUT e_text char(72)) AS select * from SYSDBA.DUAL; fetch into :e_text;";

maxdb_query($link$query);

/* Performing SQL query */
$stmt maxdb_prepare ($link"CALL test_proc (?)");
if (!
$stmt) {
  
printf ("Prepare failed: %s\n"maxdb_error($link));
}

maxdb_stmt_bind_param($stmt's'$result);
maxdb_stmt_execute($stmt);

printf ("%s\n"$result);

maxdb_stmt_close ($stmt);
?>

以上例程的输出类似于:

a

Example #5 面向对象风格 (extended syntax)

<?php
$maxdb 
= new maxdb('localhost''MONA''RED''DEMODB');

/* check connection */
if (maxdb_connect_errno()) {
   
printf("Connect failed: %s\n"maxdb_connect_error());
   exit();
}

$maxdb->query ("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query ("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt $maxdb->prepare("INSERT INTO temp.mycity VALUES (?, ?, ?)");

$arr = array();

$stmt->bind_param('iss'$arr);

$arr[0] = 11111;
$arr[1] = 'Georgetown';
$arr[2] = 'NY';

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n"maxdb_stmt_affected_rows($stmt));

$arr[0] = 22222;
$arr[1] = 'New Orleans';
$arr[2] = 'LA';

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n"$stmt->affected_rows);

/* close statement and connection */
$stmt->close();

$result $maxdb->query("SELECT * from temp.mycity WHERE zip = '11111' OR zip = '22222'");
if (
$result) {
  while (
$row $result->fetch_row()) {
    
printf ("%s %s %s\n"$row[0], $row[1], $row[2]);
  }
}

/* Clean up table CountryLanguage */
$maxdb->query("DELETE FROM temp.mycity WHERE name='Georgetown'");
$maxdb->query("DELETE FROM temp.mycity WHERE name='New Orleans'");
printf("%d Rows deleted.\n"$maxdb->affected_rows);

/* close connection */
$maxdb->close();
?>

以上例程的输出类似于:

1 Row inserted.
1 Row inserted.
11111 Georgetown NY
22222 New Orleans LA
2 Rows deleted.

参见

相关文章
php cubrid 函数 bind variables to a prepared statement as parametersphp cubrid 函数 bind a lob object or a string as a lob object to a prepared statement as parametersphp firebird/interbase 函数 return the number of parameters in a prepared queryphp maxdb 函数 escapes special characters in a string for use in an sql statement taking into account the current charset of the connectionphp maxdb 函数 returns the total number of rows changed deleted or inserted by the last executed statementphp maxdb 函数 binds variables to a prepared statement as parametersphp maxdb 函数 binds variables to a prepared statement for result storagephp maxdb 函数 closes a prepared statementphp maxdb 函数 fetch results from a prepared statement into the bound variablesphp maxdb 函数 resets a prepared statementphp maxdb 函数 returns result set metadata from a prepared statementphp maxdb 函数 returns sqlstate error from previous statement operationphp maxdb 函数 transfers a result set from a prepared statementphp mysql xdevapi 函数 bind prepared statement variables as parametersphp postgresql 函数 sends a request to execute a prepared statement with given parameters and waits for the resultphp postgresql 函数 submits a request to create a prepared statement with the given parameters and waits for completionphp postgresql 函数 sends a request to execute a prepared statement with given parameters without waiting for the result s php postgresql 函数 sends a request to create a prepared statement with the given parameters without waiting for completionphp mysqli stmt binds variables to a prepared statement as parametersphp mysqli stmt binds variables to a prepared statement for result storage
关注编程学问公众号