mysql查询中的奇怪错误

时间:2011-10-12 15:16:31

标签: php mysql sql

我想获取我输入的最后一个值。

我正在尝试获取我的文章所在的数字。所以我使用这个查询:

 $totalPages= mysql_query("SELECT page FROM `easy_db`.`article` ORDER BY article_id DESC LIMIT 1")  or die(mysql_error());

我得到的价值是6。

为什么6?我截断了桌子..然后再次尝试,我再次得到6 ..它应该是1。

另一个问题,我想在php中强制执行类型..

我尝试强制执行Int,但它似乎不起作用:

 $page=(int) $totalPages/10;

3 个答案:

答案 0 :(得分:4)

mysql_query返回资源句柄,而不是查询本身的结果。有关how to query a database的一些基本示例,请参阅PHP手册。例如:

$result= mysql_query("SELECT page FROM `easy_db`.`article` ORDER BY article_id DESC LIMIT 1")  or die(mysql_error());

if ($row = mysql_fetch_assoc($result)) {
   $totalPages=$row['page'];
}

关于第二个问题,请注意operator precedence rules - (int)运算符的优先级高于除法,因此在除法之前执行。因此,您可以获得浮点结果。或者尝试其中一个

$page = (int)($totalPages/10); #rounds down

$page=round($totalPages/10); #rounds up or down as appropriate

同时结帐floor()ceil()作为回合的替代方法,因为它们在编写分页计算时通常很有用。

答案 1 :(得分:1)

您可以在php中使用mysql_insert_id()函数来检索最后插入行的ID。

mysql_insert_id

答案 2 :(得分:1)

你应该使用mysql_insert_id();插入声明后立即。