从Sqlite DB中的单行返回int

时间:2015-06-12 05:27:47

标签: php sql sqlite pdo

我需要返回来自数据库的2个整数,但是,我似乎无法正确查询。

$result1 = $db->query('SELECT * FROM StoredData WHERE VoteName="foo"')->fetch(); 
$result2 = $db->query('SELECT * FROM StoredData WHERE VoteName="bar"')->fetch();

我需要结果1/2来从名为" VoteTotal"的列中返回ints,我已经尝试了很多运气而没有太多运气,包括将*改为VoteTotal,我认为会这样做。

VoteName是独一无二的,我也尝试了fetchcolumn而没有任何运气:(

架构很简单:

ID,VoteName,VoteTotal

3 个答案:

答案 0 :(得分:0)

如果你正在传递' VoteName'作为静态值,然后根本不使用引号,如下所示。

$result1 = $db->query('SELECT * FROM StoredData WHERE VoteName=foo')->fetch(); 
$result2 = $db->query('SELECT * FROM StoredData WHERE VoteName=bar')->fetch();

答案 1 :(得分:0)

如前所述,必须避免使用引号(如果它是静态值)或直接将变量放在没有引号的$ variable_name中。 制作*到VoteTotal应该可以解决问题。

否则,您将拥有一个关联数组,您必须使用$ result [“VoteTotal”]

从中选择所需的结果
$result1 = $db->query("SELECT * FROM StoredData WHERE VoteName=foo")->VoteTotal; 

答案 2 :(得分:0)

使用您提供的代码,变量$ result1(和$ result2)是数据库中的行 你缺少的是用 ['VoteTotal'] 选择想要的栏目 这是对我有用的代码:

$connection = new PDO("mysql:dbname=test;host=localhost;charset=utf8", "admin", "admin");
$connection -> exec("set names utf8");

$name1 = $connection->query("SELECT * FROM storedata WHERE VoteName='name1'");
$name2 = $connection->query("SELECT * FROM storedata WHERE VoteName='name2'");

echo $name1->fetch()['VoteName'];
echo "<br><br>";
echo $name2->fetch()['VoteTotal'];

希望它有所帮助。