Я пытаюсь выполнить код ниже, чтобы получить данные из 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";
?>
==
- оператор проверки равенства. Чтобы присвоить значение переменной, вы должны использовать оператор =
:
$value = $myrow[rating];
$value2 = $myrow[numofratings];
Должен быть
$myrow = pg_fetch_assoc($result);
$value = $myrow[rating];
$value2 = $myrow[numofratings];
Вы используете ==, который не является присвоением, а сравнением. Таким образом, ваш код в основном делает
$myrow = pg_fetch_assoc($result);
false;
false;
print ", ";
... так как эти две переменные никогда фактически не назначаются или даже вообще не существуют.
Попробуйте использовать подготовленные заявления 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);