вернуть одно значение из базы данных с помощью 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; 

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

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

 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 

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

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

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

http://php.net/manual/en/pdostatement.fetchcolumn.php надеюсь, что это решит вашу проблему.

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

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

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