在变量

时间:2016-01-28 16:13:36

标签: php mysql

我有一个简单的MySQL数据库设置。

enter image description here

当我在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。你能帮我解决这里缺少的那些问题吗?

非常感谢。

3 个答案:

答案 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();

请参阅http://php.net/manual/en/pdostatement.fetchall.php

答案 2 :(得分:0)

尝试这样

$dt = $statement->execute();
$result = $dt->fetch();
var_dump($result);