Вернуть одно значение из базы данных с помощью mysql php pdo

Я не пытаюсь использовать цикл. Я всего лишь одно значение из одного столбца из одной строки. Я получил то, что хочу, со следующим кодом, но должен быть более простой способ использования PDO.

try {
        $conn = new PDO('mysql:host=localhost;dbname=advlou_test', 'advlou_wh', 'advlou_wh');
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch(PDOException $e) {
        echo 'ERROR: ' . $e->getMessage();
    }

$userid = 1;

$username = $conn->query("SELECT name FROM `login_users` WHERE username='$userid'");
$username2 = $username->fetch();
$username3 = $username2['name'];

echo $username3;

Это просто похоже на слишком много строк, чтобы получить одно значение из базы данных.:\

Ответы

Ответ 1

Вы можете создать функцию для этого и вызвать эту функцию каждый раз, когда вам нужно одиночное значение

function getSingleValue($tableName, $prop, $value, $columnName)
{
  $q = $conn->query("SELECT `$columnName` FROM `$tableName` WHERE $prop='".$value."'");
  $f = $q->fetch();
  $result = $f[$columnName];
  return $result;
}

Тогда вы можете просто сделать:

$singleValue = getSingleValue('login_users', 'username', $userid, 'name'); // will get you the value

Итак, вам нужно создать эту функцию только один раз, но можно повторно использовать ее для разных таблиц с разными именами столбцов.

Ответ 2

Вы можете использовать fetchColumn():

$q= $conn->query("SELECT name FROM `login_users` WHERE username='$userid'");
$username = $q->fetchColumn();

Ответ 4

Так же, как и слишком много работы, чтобы попасть в вашу машину, поехать в магазин, пробиться сквозь толпу, схватить этот кувшин молока, который вам нужен, а затем сразиться с вами домой, просто чтобы вы могли молочный коктейль.

Все эти этапы необходимы, и каждый последующий шаг зависит от предыдущих.

Если вы делаете это несколько раз, то, во что бы то ни стало, обертываете функцию вокруг него, чтобы вы могли повторно использовать ее и свести ее к одному вызову getMyValue(), но в фоновом режиме все, что код все еще должен присутствовать.