我需要返回来自数据库的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
答案 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'];
希望它有所帮助。