2015-06-03 85 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()函数解决。如果您希望用户指定表格,则将其作为参数传递并将其转义。