2013-05-14 156 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。看起來好像這些額外的點用來告訴司機變量要走哪條路......然而,這對我仍然沒有任何意義。如果你能解釋這一點並編輯你的答案,我一定會接受它。謝謝你的時間! –