2015-06-12 3 views
0

Мне нужно вернуть 2 ints из базы данных, но, похоже, я не могу получить запрос правильно.Возвращение int из одной строки в Sqlite DB

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

мне нужно привести 1/2 вернуть Интс из колонки под названием «VoteTotal», я пробовал различные вещи, без особой удачи, в том числе изменение * к только VoteTotal, который я думал, что это сделает.

VoteName уникален, я также пытался fetchcolumn без удачи :(

схема просто:

ID, VoteName, VoteTotal

+0

Возможно, вам нужно использовать одинарные кавычки в вашем запросе? – Logard

ответ

0

Если вы передаете 'VoteName' как статические значение, то не использовать кавычки вообще, как показано ниже.

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

как было объяснено, прежде чем вы должны избегать использования кавычек, если это статическое значение или поставить Varia напрямую без кавычек как $ variable_name. Выполнение * в VoteTotal должно сделать трюк.

Иначе вы будете иметь ассоциативный массив, из которого вы должны будете выбрать нужный результат с помощью $ результата [ «VoteTotal»]

$result1 = $db->query("SELECT * FROM StoredData WHERE VoteName=foo")->VoteTotal; 
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']; 

Надеется, что это помогает.