首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql中的count语法

mysql中的count语法
EN

Stack Overflow用户
提问于 2011-11-17 18:32:15
回答 3查看 518关注 0票数 1

我想得到满足条件的行数。

代码语言:javascript
复制
mysql_query("SELECT COUNT(*) FROM sid WHERE sid='".session_id()."'");

这一条忽略了条件。

更新:

代码语言:javascript
复制
$session = session_id();
$sql = "SELECT COUNT(*) as row_count FROM sid WHERE sid = '$session' ";
var_dump($r = mysql_query($sql));//resource(4) of type (mysql result) (1)
var_dump(mysql_fetch_assoc($r));
//array(1) { ["row_count"]=> string(1) "1" }  - this result is OK(2)

(1) resource(4) -我以为4是计数

(2) mysql_real_escape_string($_SESSION['id']);给予0

注意:

我已经从mysql_num_rows更改为这种类型的get count,因为我认为它会立即返回count,并且我不需要编写更多的行来获得这个基本数据。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-17 18:37:45

执行此操作的正确方法是:

代码语言:javascript
复制
$session = mysql_real_escape_string($_SESSION['id']);  <<-- Get the session id
echo "debug: session_id = ".htmlentities($session);
$sql = "SELECT count(*) as row_count FROM tablename WHERE sid = '$session' ";
$result = mysql_query($sql);
if (!$result) {
  die('error in query '.$sql.' error is: '.mysql_error());
}
//we only have 1 result
$row = mysql_fetch_array($result);
//always sanitize so you don't suffer XSS attacks when the query changes   
//and the $row['x'] changes from an integer to a user-supplied string.
$count = intval($row['row_count']);  
echo "count is: ".$count;

表名和列名可以相同,但在本例中它们可能不同。

sid显然代表字段"session_id",因此您需要将FROM之后的第一个sid替换为您的表名。

票数 2
EN

Stack Overflow用户

发布于 2011-11-17 18:36:49

首先在php变量中编写查询,并回显它以检查session_id()返回的内容,然后尝试可能在session_id()中没有任何内容;例如

代码语言:javascript
复制
$sql = "SELECT COUNT(*) FROM sid WHERE sid='".session_id()."'";
echo $sql;

并在phpmyadmin中运行它,如果它运行正常,那么您的查询就会出错

票数 0
EN

Stack Overflow用户

发布于 2011-11-17 18:39:25

表名=“会话”

列名= "sid“

代码语言:javascript
复制
mysql_query("SELECT COUNT(*) FROM sessions WHERE sid='".session_id()."'");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8165643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档