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
是什么?
答案 0 :(得分:9)
它将值绑定到命名参数:
$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
表示绑定值应与变量一样长。这是默认值。您不必设置它。只要您只绑定现有变量,就不需要打扰。
您想使用此方法,因为
Binding允许数据库重用语句上下文和caches from previous executions of the statement,即使其他用户或进程最初执行它也是如此。绑定减少了SQL Injection问题,因为与绑定变量关联的数据永远不会被视为SQL语句的一部分。它不需要引用或转义。
这意味着它更安全并且更好的性能。
答案 1 :(得分:0)
oci_bind_by_name方法指定:nm的值为“O'Reilly” -1是默认值...所以需要打扰。如果您指定的其他值将告诉方法具有值的长度:nm。