Я не пытаюсь использовать цикл. Я всего лишь одно значение из одного столбца из одной строки. Я получил то, что я хочу, со следующим кодом, но должен быть более простой способ использования 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()
но в фоновом режиме все это код все еще должен присутствовать.