2017-07-16 36 views
-1

我希望有人能帮助我解决这个奇怪的问题。PHP MySQLI - 表数以零结尾

我的问题是当我在我的表中计数记录它返回零。

当我在phpMyAdmin中使用相同的SQLI查询时,我得到了正确的数字。

我也可以读取所有记录,所以我知道连接没问题。 现在我已经尝试了很多东西,比如注释掉mysqli_stmt_bind_param,在数字和字符串之间切换,也没有“while”循环,因为只有一个值返回,但目前还没有运气。

所以任何人都可以告诉我我在做什么错了这段代码?

$prep_stmt = "SELECT COUNT (*) FROM gps"; 
$stmt = mysqli_prepare ($mysqli, $prep_stmt); 
mysqli_stmt_bind_param ($stmt, 'i'); 
mysqli_stmt_execute($stmt); 

mysqli_stmt_bind_result($stmt, $gps_pos); 

while (mysqli_stmt_fetch($stmt)){ 
    $format = "Antal GPS Positioner: %d \n"; 
    printf($format, $gps_pos); 
} 
+1

所以没有什么约束你没有使用的占位符。你应该得到一个关于这个错误。请参阅手册http://php.net/manual/en/mysqli-stmt.bind-param.php,并尝试删除“COUNT(*)'=> COUNT(*)' –

+0

Plus中的空格,试图将一个整数绑定到所有列,可能(另一个原因)为什么它失败。 –

+0

请尝试像这样执行您的查询: $ prep_stmt =“SELECT COUNT(*)as FROM FROM gps”; 然后算起来。 –

回答

0

忘记所有一分钟的结合,并尝试做你这样的查询:

$query = "SELECT COUNT (*) as counted FROM gps"; 
$result = mysqli_query($dbc, $query); 
$num = mysqli_num_rows ($result); 

if ($num > 0) 
{ 
while($row = mysqli_fetch_assoc($result)) 
    { 
    $Counted = $row['Counted']; 
    $format = "Antal GPS Positioner: %d \n"; 
    printf($format, $Counted) 
    } 
} 
+0

对不起,但没有运气,没有错误消息。也尝试过在另一个网站上找到的一个例子。 到目前为止,我的最佳解决方案是做一个普通的查询“SELECT * From table”,并使用一个计数器来获取每一行,只是丢弃不需要的数据。 :-) – RAJensen

+0

更改“$计数= $行['计数'];”到“$ Counted = $ row ['counting'];”;它应该是一个小写。如果你无法弄清楚这一切,那就错了。在$ dbc下你也必须有你的数据库连接。 –

+0

我确实看到大写/小写拼写错误。我知道连接没问题,因为我会使用它,当我从数据库中读出数据时。 如果它没有工作,我不能使用柜台。 :-) – RAJensen