php sql 字段名称,PHPSQL Server – 字段名称被截断
以下是相關代碼:
function connect(){
// DB credentials and info defined here....
$connection = odbc_connect("DRIVER={SQL Server Native Client 11.0}; Server=$server; Database=$db;", $loginname, $loginpass);
return $connection;
}
function odbc_fetch_results($stmt, &$results) {
$numrows = odbc_num_rows($stmt);
$row = odbc_fetch_array($stmt);
print_r($row); // Prints: Array ( [MEASUREMENT_UNI] => kg)
if($row){
$results = array ($row);
while( $row = odbc_fetch_array($stmt)){
array_push($results, $row);
}
}
return $numrows;
}
$sql = "select * from measurements where ID=$id";
$stmt = executeSQL($conn,$sql);
$nrows = odbc_fetch_results($stmt, $results);
odbc_free_result($stmt);
print_r($result[0]); // Prints: Array ( [0] => Array ( [MEASUREMENT_UNI] => kg) )
結果應該包含一個名為MEASUREMENT_UNIT的列(當我做一個print_r我可以驗證)被截短到MEASUREMENT_UNI,只有15個字符。最后一個字母T被切斷。
我也嘗試使用SQL Server數據庫上不同的表和不同列的查詢作為測試,以確保它與我正在使用的特定表或列不是任何奇怪的設置。我驗證了與不同的表/列相同的事情:當我運行如上所示的選擇查詢時,列名稱被截斷為最多15個字符。
我還嘗試了一個select,它指定字段名稱,如從ID = $ id而不是select *的測量中選擇MEASUREMENT_UNIT,但也不能解決問題。
我在這里看過其他類似的帖子,但他們似乎都表示我應該能夠獲得至少30個字符,而不是我看到的15個字符的限制。
為什么列名稱被截斷為15個字符?
編輯:連接到MySQL服務器數據庫似乎并沒有導致同樣的問題。來自MySQL表的DB列名稱并沒有被截斷,這導致我相信這不是ODBC插件的問題。
$connection = odbc_connect("DRIVER={MySQL};Server=$server; Database=$db;", $loginname, $loginpass);
$sql = "select * from measurements where ID=$id";
$stmt = executeSQL($conn,$sql);
$nrows = odbc_fetch_results($stmt, $results);
odbc_free_result($stmt);
print_r($result[0]); // Prints CORRECTLY: Array ( [0] => Array ( [MEASUREMENT_UNIT] => kg) )
請注意,上述兩個代碼段都在同一個服務器上的相同文件中進行了相同的PHP ODBC安裝。
總結
以上是生活随笔為你收集整理的php sql 字段名称,PHPSQL Server – 字段名称被截断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php常用插件,关于PHP网站编程中常用
- 下一篇: 蔷薇绅士杰斯为什么这么贵(蔷薇绅士杰斯怎