SQLite3Stmt::bindParam

(PHP 5 >= 5.3.0)

SQLite3Stmt::bindParamانقیاد پارامتر به متغیر عبارت

Description

public bool SQLite3Stmt::bindParam ( string $sql_param , mixed &$param [, int $type ] )

انقیاد پارامتر به متغیر عبارت.

Parameters

sql_param

string شناسایی کننده متغیر عبارت که پارامتر باید به آن انقیاد یابد.

param

پارامتر برای انقیاد به متغیر عبارت.

type

نوع داده مقدار برای انقیاد.

  • SQLITE3_INTEGER: مقدار عدد صحیح علامت‌دار است ذخیره شده در 1، 2، 3، 4، 6، یا 8 بایت متناسب با درجه مقدار.

  • SQLITE3_FLOAT: مقدار یک مقدار ممیز شناور است ذخیره شده در عدد ممیز شناور 8-byte IEEE .

  • SQLITE3_TEXT: مقدار رشته متنی است که با استفاده از پایگاه داده کدگذاری شده به وسیله (UTF-8، UTF-16BE یا UTF-16-LE) ذخیره می‌شود.

  • SQLITE3_BLOB: مقدار داده blob ذخیره شده به صورت ورودی.

  • SQLITE3_NULL: مقدار یک مقدار NULL است.

Return Values

بازگرداندن TRUE اگر پارامتر به متغیر عبارت محدود باشد FALSE در صورت شکست.

add a note add a note

User Contributed Notes 3 notes

up
0
Anonymous
6 days ago
Note that this bindParam needs a variable as the second parameter.
Use bindValue if you want to bind a value, such an array item.
up
-3
Cassiano Martin
8 months ago
If you use any function to put value into an array, and bind it to the statement, PHP will fill NULLs on the binded field.

eg:

$st=$db->prepare('insert into xxx(x1,x2,x3) values(?,?,?)');
$st->bindParam(1, $data[0], SQLITE3_TEXT);
$st->bindParam(2, $data[1], SQLITE3_TEXT);
$st->bindParam(3, $data[2], SQLITE3_TEXT);

$data=explode(',','php,sometimes,woofs');

This will completely fail, and NULLs will be inserted on the table.

You need to manually assign every variable on the array. Any other function which completes it, will fail and NULLs are inserted.

$temp=explode(',','php,sometimes,woofs');
$data[0]=$temp[0];
$data[1]=$temp[1];
$data[2]=$temp[2];
up
-6
Anonymous
3 years ago
Note:

$stmt->bindParam(1, 'lol', SQLITE3_TEXT);

That would trigger a fatal error as you cannot pass argument 2 by reference as it is a value.
To Top