繁体   English   中英

什么是oci_bind_by_name?

[英]what is oci_bind_by_name for?

什么是oci_bind_by_name 我阅读了php手册,无法理解任何内容。 请有人向我解释一下

看看这个例子:

$name = "O'Reilly";
$stid = oci_parse($mycon, 'INSERT INTO CUSTOMERS (NAME) VALUES (:nm)');
oci_bind_by_name($stid, ':nm', $name, -1);
oci_execute($stid);

什么是-1

它将值绑定到命名参数:

$name = "O'Reilly";
$stid = oci_parse($mycon, 'INSERT INTO CUSTOMERS (NAME) VALUES (:nm)');
oci_bind_by_name($stid, ':nm', $name, -1);
oci_execute($stid);

因此,当您运行该查询时:nm将是O'Reilly -1表示,绑定值应与变量一样长。 这是默认值。 您不必设置它。 只要您只绑定现有变量,就不需要费心了。

你想使用这种方法,因为

绑定允许数据库重用语句上下文和来自语句的先前执行的高速缓存 ,即使其他用户或进程最初执行它也是如此。 绑定减少了SQL注入问题,因为与绑定变量关联的数据永远不会被视为SQL语句的一部分。 它不需要引用或转义。

这意味着它更安全性能更好

oci_bind_by_name方法指定:nm的值为“O'Reilly”-1是默认值...所以需要打扰。 如果您指定的其他值将告诉方法具有以下值的长度:nm。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM