我有一个简单的MySQL数据库设置。
当我在MySQL shell中执行时:
"SELECT count(serverid) as num FROM servers WHERE owner_id = 1"
它说:
+-----+
| num |
+-----+
| 4 |
+-----+
这是正确的。
在php中我想要一个值为4
的变量。
$pdo = new PDO('mysql:host=localhost;dbname=cswebin', 'root', 'password');
$statement = $pdo->prepare("SELECT count(serverid) as num FROM servers WHERE owner_id = :useruid");
$result = $statement->execute();
echo $result;
但这不起作用。 $result
没有值4
。你能帮我解决这里缺少的那些问题吗?
非常感谢。
答案 0 :(得分:1)
首先,您没有绑定变量,因此首先使用->bindParam()
绑定变量。其次,使用->fetch(PDO::FETCH_ASSOC)
从结果集中获取行。
所以你的代码应该是这样的:
$useruid = <YOUR VALUE>;
$pdo = new PDO('mysql:host=localhost;dbname=cswebin', 'root', 'password');
$statement = $pdo->prepare("SELECT count(serverid) as num FROM servers WHERE owner_id = :useruid");
$statement->bindParam(':useruid', $useruid);
if($statement->execute()){
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo $row['num'];
}
答案 1 :(得分:0)
您需要在execute()
查询后获取结果。例如:
$result = $statement->execute()->fetchAll();
答案 2 :(得分:0)
尝试这样
$dt = $statement->execute();
$result = $dt->fetch();
var_dump($result);