有这样一段代码,怎么取也取不到结果集的数目....请各位大神看看...
$stmt=$dbc->prepare('select count(*) from loginlog');
$rows=$stmt->execute();
pageDivide($rows,10);
$result=$dbc->prepare('select * from loginlog order by logintime desc limit $sqlfirst,$shownu');
$result->execute();
echo'一共有'.$rows.'条登录记录';
echo '
用户名 | ';密码 | ';登录IP | ';登录时间 | ';登录状态 | ';尝试次数 | ';在线状态 | ';
---|---|---|---|---|---|---|
'.$row['name'].' | ';'.$row['password'].' | ';'.$row['ip'].' | ';'.$row['logintime'].' | ';'.$row['status'].' | ';'.'1'.' | ';'.'在线'.' | ';
$result = $stmt->fetch(PDO::FETCH_NUM);
echo $result[0] ; //这个才是
$result = $stmt->fetch(PDO::FETCH_NUM);
echo $result[0] ; //这个才是
请问那是这样写吗?
$stmt=$dbc->prepare('select * from loginlog');
$rows=$stmt->execute();
$rowsNum=$rows->fetch(PDO::FETCH_NUM);
LZ应该是$stmt=$dbc->prepare('select * from loginlog');
$rows=$stmt->execute();
$rowsNum=$rows->fetch(PDO::FETCH_ASSOC);
print_r($rowsNum->rowCount());
LZ应该是$stmt=$dbc->prepare('select * from loginlog');
$rows=$stmt->query();
$rowsNum=$rows->fetch(PDO::FETCH_ASSOC);
print_r($rowsNum->rowCount());
上面的有点小问题,是print_r($rows->rowCount());
LZ应该是$stmt=$dbc->prepare('select * from loginlog');
$rows=$stmt->query();
$rowsNum=$rows->fetch(PDO::FETCH_ASSOC);
print_r($rowsNum->rowCount());
上面的有点小问题,是print_r($rows->rowCount());
Fatal error: Call to a member function fetch() on a non-object i
$stmt=$dbc->prepare('select * from loginlog');
$rows=$stmt->execute();
$rowsNum=$rows->fetch(PDO::FETCH_ASSOC);
$rowsN=$rows->rowCount();
$stmt=$dbc->prepare('select * from loginlog');
$rows= $stmt->execute();
$rowsNum= $stmt->fetch(PDO::FETCH_NUM);
$stmt=$dbc->prepare('select * from loginlog');
$rows= $stmt->execute();
$rowsNum= $stmt->fetch(PDO::FETCH_NUM);
echo 一个array。。。要rowCount();吗?
$stmt=$dbc->prepare('select count(*) from loginlog');
$stmt->execute();
$rowsNum=$stmt->fetch(PDO::FETCH_NUM); //返回一个数组
print_r($rowsNum);
或者这样:
$stmt=$dbc->prepare('select count(*) from loginlog');
$stmt->execute();
$rowsNum = $stmt->fetchColumn();
echo $rowsNum;
int PDOStatement::rowCount ( void )
PDOStatement::rowCount() 返回上一个由对应的 PDOStatement 对象执行DELETE、 INSERT、或 UPDATE 语句受影响的行数。
如果上一条由相关 PDOStatement 执行的 SQL 语句是一条 SELECT 语句,有些数据可能返回由此语句返回的行数。但这种方式不能保证对所有数据有效,且对于可移植的应用不应依赖于此方式。
$stmt=$dbc->prepare('select count(*) from loginlog');
$stmt->execute();
$rowsNum=$stmt->fetch(PDO::FETCH_NUM); //返回一个数组
print_r($rowsNum);
或者这样:
$stmt=$dbc->prepare('select count(*) from loginlog');
$stmt->execute();
$rowsNum = $stmt->fetchColumn();
echo $rowsNum;
$stmt=$dbc->prepare('select count(*) from loginlog');
$rows=$stmt->execute();
$rowsNum = $rows->fetchColumn();
pageDivide($rowsNum,10);
$result=$dbc->prepare('select * from loginlog order by logintime desc limit $sqlfirst,$shownu');
$result->execute();
//if($stmt){
/*$result=mysql_query('select * from loginlog order by logintime desc ');
$total=mysql_num_rows($result);
pageDivide($total,10);
$result=mysql_query("select * from loginlog order by logintime desc limit $sqlfirst,$shownu ");*/
echo'一共有'.$rowsNum.'条登录记录';
echo '
用户名 | ';密码 | ';登录IP | ';登录时间 | ';登录状态 | ';尝试次数 | ';在线状态 | ';
---|---|---|---|---|---|---|
'.$row['name'].' | ';'.$row['password'].' | ';'.$row['ip'].' | ';'.$row['logintime'].' | ';'.$row['status'].' | ';'.'1'.' | ';'.'在线'.' | ';
$rows= $stmt->execute();
$rowsNum = $stmt->fetchColumn();
$rows= $stmt->execute();
$rowsNum = $stmt->fetchColumn();
$stmt=$dbc->prepare('select count(*) from loginlog');
$rows=$stmt->execute();
$rowsNum = $rows->fetchColumn();
是这样写的呀...报错~
$stmt->execute();
$stmt->execute();
$rowsNum = $stmt->fetchColumn();
嗯嗯 这样是对了 谢谢你,可以和我说下是为什么吗?我好避免以后犯这样的错误
PDO::prepare 返回一个 PDOStatement 对象,就是你的那个 $stmt
而 PDOStatement::execute 返回的是一个逻辑值,表示执行成功与否
如果你写作 $rows=$stmt->execute();
那么 $rows 只是一个 true
当然也就没有 fetchColumn 方法了,于是就报错了
一是要看手册,不但要看用法,而且要学会看原型声明
二是要学会看错误信息
PDO::prepare 返回一个 PDOStatement 对象,就是你的那个 $stmt
而 PDOStatement::execute 返回的是一个逻辑值,表示执行成功与否
如果你写作 $rows=$stmt->execute();
那么 $rows 只是一个 true
当然也就没有 fetchColumn 方法了,于是就报错了
一是要看手册,不但要看用法,而且要学会看原型声明
二是要学会看错误信息
嗯嗯 懂了,谢谢你...我一直是项目驱动方式学习php的,遇到问题才去翻手册...