是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);
Run Code Online (Sandbox Code Playgroud)
是-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);
Run Code Online (Sandbox Code Playgroud)
所以当你运行那个查询:nm时O'Reilly.的-1手段,结合的值应为只要可变.这是默认值.您不必设置它.只要您只绑定现有变量,就不需要费心了.
你想使用这种方法,因为
绑定允许数据库重用语句上下文和来自语句的先前执行的高速缓存,即使其他用户或进程最初执行它也是如此.绑定减少了SQL注入问题,因为与绑定变量关联的数据永远不会被视为SQL语句的一部分.它不需要引用或转义.
这意味着它更安全,性能更好.