使用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

因此,您只需创建一次该函数,即可将其重新用于具有不同列名的不同表。

出于安全原因,请避免将字符串连接以形成SQL查询,而应使用准备好的语句。

因此,而不是弱势群体

$q = $conn->query("SELECT `$columnName` FROM `$tableName` WHERE $prop='".$value."'");

在准备好的语句中使用相应的代码

$q = $conn->prepare('SELECT :columnName FROM :tableName WHERE :property=:value', [

'columName' => $columnName,

'tableName' => $tableName,

'property' => $prop,

'value' => $value

]);

以上是 使用mysql php pdo从数据库返回一个值 的全部内容, 来源链接: utcz.com/qa/415581.html

回到顶部