получить данные из postgresql с помощью php и сохранить значение в переменной

1

Я пытаюсь выполнить код ниже, чтобы получить данные из postgresql с php и сохранить значение в переменной.

У меня есть таблица с именем: Меню с 3 столбцами с именем: имя, рейтинг и числовые обозначения.

Одна из записей: name = рейтинг пасты = 4 numofratings = 3

И я хочу получить рейтинг = 4 numofratings = 3

и сохранили эти числа в двух переменных: value и value2, чтобы использовать значения.

Это то, что я пытался, но он не печатает значения, поэтому я делаю что-то неправильно и не знаю, что это такое.

Любая помощь будет оценена по достоинству.

БЛАГОДАРЯ

<?php   

$db = pg_connect('host=localhost dbname=test user=myuser password=mypass');


    $query = "SELECT rating, numofratings FROM menu where name = 'Pasta'";
    $result = pg_query($query);
    if (!$result) {
        echo "Problem with query " . $query . "<br/>";
        echo pg_last_error();
        exit();
    }

$myrow = pg_fetch_assoc($result); 
    $value == $myrow[rating];
    $value2 == $myrow[numofratings];

    echo "$value, $value2";

 ?>
Теги:

3 ответа

0
Лучший ответ

== - оператор проверки равенства. Чтобы присвоить значение переменной, вы должны использовать оператор =:

$value = $myrow[rating];
$value2 = $myrow[numofratings];
  • 1
    Отлично. Это сработало. Большое спасибо
0

Должен быть

$myrow = pg_fetch_assoc($result); 
$value = $myrow[rating];
$value2 = $myrow[numofratings];

Вы используете ==, который не является присвоением, а сравнением. Таким образом, ваш код в основном делает

$myrow = pg_fetch_assoc($result); 
false;
false;
print ", ";

... так как эти две переменные никогда фактически не назначаются или даже вообще не существуют.

0

Попробуйте использовать подготовленные заявления PDO

$sql = "SELECT rating, numofratings FROM menu where name = :name";
$pdo = new PDO('pgsql:dbname=mydb;host=localhost;user=myuser;password=mypass');
if ($con = $pdo->prepare($sql)) {
    $con->execute([
        ':name'=>'Pasta'
    ]);
    $r = $con->fetch(PDO::FETCH_ASSOC);
    if(!empty($r)){
        $val1 = $r['rating'];
        $val2 = $r['numofratings'];
    }
}

Вы захотите поставить кавычки arround ['rating'] и ['numofratings'] потому что PHP будет бросать подгонку, если вы этого не сделаете.

Попробуйте распечатать ошибки, чтобы узнать, что не так с вашим кодом.

//At the top of the php page
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню