2013-05-14 102 views
2

从此页开始Microsoft; http://msdn.microsoft.com/en-us/library/cc626305.aspx,他们通过展示如何正确构建数组,提供了有关如何使用参数化查询的示例。下面是示例代码片段:这些NULLS是什么意思?

$params1 = array(
       array($employeeId, null), 
       array($changeDate, null, null, SQLSRV_SQLTYPE_DATETIME), 
       array($rate, null, null, SQLSRV_SQLTYPE_MONEY), 
       array($payFrequency, null, null, SQLSRV_SQLTYPE_TINYINT) 
      ); 

我理解的变量和常量,但他们没有说明什么是空的。有时他们被使用,有时他们不是,有时有两个;

variable, null, null, constant 

有人可以向我解释这一点,或指我到正确的地方吗?我无法找到关于此的任何阅读材料。

谢谢。

+0

当某些东西需要传递某些东西而你没有东西可以传递的时候,你会传递NULL吗? – adeneo

+0

我认为问题是为什么数组之间有不同数量的参数。我不知道 - 可能与SQL服务器有关。 – sgroves

+1

哦,你去 - 在页面顶部:“有关$ params数组的结构和语法的详细信息,请参阅sqlsrv_query或sqlsrv_prepare。” – sgroves

回答

4

这类似于调用重载函数。有时函数采用2个参数:

 array($employeeId, null) 

有时是4:

  array($rate, null, null, SQLSRV_SQLTYPE_MONEY) 

在这些功能放置空一般调用意味着没有值。如果您查看从这些调用的不同查询/函数,您很可能会看到参数以不同方式使用。进一步,传递给函数的null意味着它将是一个可选参数,这就是为什么它作为没有值或null而来的原因。

+0

谢谢您的详细解答。正如@sgroves在上面提到的,我访问了页面顶部的链接,将我带到这里http://msdn.microsoft.com/en-us/library/cc296184.aspx。看起来好像这些额外的点用来告诉司机变量要走哪条路......然而,这对我仍然没有任何意义。如果你能解释这一点并编辑你的答案,我一定会接受它。谢谢你的时间! –