PHP PDO mysql_result()等价物?
在PDO中使用什么来代替旧的mysql_resl() 给我错误,因为它返回表而不是对象(我需要)PHP PDO mysql_result()等价物?,php,oop,object,pdo,fetch,Php,Oop,Object,Pdo,Fetch,在PDO中使用什么来代替旧的mysql_resl() 给我错误,因为它返回表而不是对象(我需要) 。。。我就是这么写的。这可能会解决问题。这似乎有点奇怪。你不能只做一次选择,然后计算结果吗?事实上,您正在两次运行同一个查询…@andrewsi挂起设置-就执行而言,count()实际上可能无关紧要;数据库可能会缓存一个相对计数,并几乎自动返回一个结果,而不是实际计算行数。@newfurniture-但将查询传递给数据库也会带来开销。没错,这不是什么额外的工作,但仍然是额外的工作。 function
。。。我就是这么写的。这可能会解决问题。这似乎有点奇怪。你不能只做一次选择,然后计算结果吗?事实上,您正在两次运行同一个查询…@andrewsi挂起设置-就执行而言,
count()
实际上可能无关紧要;数据库可能会缓存一个相对计数,并几乎自动返回一个结果,而不是实际计算行数。@newfurniture-但将查询传递给数据库也会带来开销。没错,这不是什么额外的工作,但仍然是额外的工作。
function ib_uk_isvalid($db,$uk) {
try {
$sth = $db->prepare("SELECT count(*) FROM ib_userkeys WHERE value=:val");
$sth->bindParam(":val",$uk);
$sth->execute();
$numrows = $sth->fetchColumn();
if($numrows>=1) {
$sth2 = $db->prepare("SELECT * FROM ib_userkeys WHERE value=:val");
$sth2->bindParam(":val",$uk);
$sth2->execute();
$res = $sth2->fetchAll();
print($res[0]->type);
} else {
return 0;
}
} catch (PDOException $e) {
return $e->getMessage();
}
}
ib_uk_isvalid($db,1234)
function ib_uk_isvalid($db, $uk) {
$query = $db->prepare('SELECT * FROM ib_userkeys WHERE value = :val LIMIT 1');
$query->bindValue(':val', $uk);
$query->execute();
$row = $query->fetch(PDO::FETCH_OBJ);
return $row ? $row->type : 0;
}