2015-06-03 127 views
1
function getDeviceTableCount($fieldnameIn) { 
$sqlDeviceCount = "SELECT COUNT(" . $fieldnameIn . ") as total FROM `devices`"; 
$countDeviceTone = mysqli_query($conn, $sqlDeviceCount); 
$data=mysqli_fetch_assoc($countDeviceTone); 
$totalQ = $data['total']; 
return $totalQ; 
} 

嘿大家, 感謝您花時間閱讀我的問題。我正在做一個函數來返回一個MYSQL數據庫中的列的計數。不幸的是,這個函數不會返回列中項目的總數。在php函數中SQL查詢失敗

我知道查詢的工作原理。我想知道如果問題是將一個PHP變量放在一個SQL字符串中,因爲我需要用戶能夠更改從應用程序查詢的表。

如果有人可以說明爲什麼這不起作用,我會很感激。

+0

問題是沒有把一個PHP變量放在SQL字符串中 - 這非常好。 $ conn變量在哪裏設置?你確定它不是「空」嗎? – jackel414

+1

確保'$ fieldnameIn'的值不是默認的MySQL關鍵字,如果是這樣的話,請在您的字段名稱周圍添加'。 – jaym

+0

它是否返回計數?該計數是否排除NULL值?從設備上選擇計數(*)與從設備中選擇計數(字段名)vs'從字段名爲空的設備中選擇計數(1)各自返回什麼? – xQbert

回答

1
在funtion $康恩

是unkonwn :(

所以如果你喜歡這樣的處理,給你DBDMS連接到你的函數

function getDeviceTableCount($fieldnameIn, $conn) { 
.... 
} 

或在函數中使用全局(即你不會,)

或建立一個新的連接,你的功能(這是你也不會)

1

這裏有很多問題。其中一個幾乎肯定是$conn。這裏的另一個問題可能是SQL注入,這可能很容易用mysqli_real_escape_string()函數解決。如果您希望用戶指定表格,則將其作爲參數傳遞並將其轉義。