当前位置: 首页 > 面试题库 >

使用mysql php pdo从数据库返回一个值

凤晨朗
2023-03-14
问题内容

我不尝试使用循环。我只是从一行的一列中获取一个值。通过以下代码,我得到了想要的东西,但是使用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
]);


 类似资料:
  • 问题内容: 网页应显示来自PostgreSql数据库中特定产品类别的一个产品图像。该图像应每25秒自动更改为其他图像。退货产品可能是随机的,也可能是某种顺序的。某些产品可能会丢失,而某些产品可能会重复,但是应该退回标准中的大多数产品。样品检索之间的可用图像总数可能会略有变化 当前使用下面的代码,该代码每25秒执行一次。这需要对数据库进行两个查询:一个查询可能是slwo的计数,第二个查询单个图像的检

  • 问题内容: 我想编写以下功能,该功能应在Excel工作表中使用: …这将通过ODBC在内部连接到SQL数据库,然后在其中执行 并将返回结果值作为函数GetRecField的结果。上面的SQL被授权仅返回一个记录(IOW KEY_FIELD具有唯一约束)。 当然,上面的函数可以在工作表中多次调用,所以请尽量避免盲目 TIA。 问题答案: 您可以编写一个自定义函数来做到这一点 打开VBA编辑器(ALT

  • 问题内容: 我需要将数据从一个数据库迁移到另一个数据库,两者都在同一本地系统上。 表和列的名称不同,我不能从旧数据库迁移所有列,因此 对我不起作用。 但我只有一个 我的查询中有什么错误,我该如何解决? 提前致谢 问题答案: 您的查询应如下所示: 更新 由于这个答案的关注程度超出了我的预期,因此我应该扩展这个答案。首先,从答案本身看可能并不明显,但各列不必具有相同的名称。因此,以下操作也将起作用(假

  • 问题内容: 我想检查Firebase中是否已经有一个具有所选用户名的用户,并且我已经创建了一个执行此操作的函数。这是函数的代码: 问题在于该方法是异步方法,因此我无法使用您可以在上面看到的策略。但是我无法从Firebase方法返回值,因为它是空方法… 如何解决此问题? 还有一件事。如果连接错误或与服务器之间没有连接,如何也返回false? 问题答案: 您必须自己使用异步完成处理程序,并验证是否存在

  • 当我在php中使用MSSQL读取一个包含很长内容的字段时,我得到一个错误 警告:mssql_query()[function.mssql查询]: Unicode仅排序规则中的Unicode数据或ntext数据不能使用DB-库(如ISQL)或ODBC版本3.7或更早版本发送到客户端 我在网上搜索并找到了解决这个问题的方法,发现我需要转换结果以获得可读文本。 然而,我遇到的另一个问题是,文本数据在40

  • 问题内容: 选项:使用元组 考虑下面这个简单的例子: 但是,随着返回值的数量增加,这很快就会成为问题。如果要返回四个或五个值怎么办?当然,你可以继续修改它们,但是很容易忘记哪个值在哪里。在任何想要接收它们的地方打开它们的包装也是很丑陋的。 选项:使用字典 下一步的逻辑步骤似乎是引入某种“记录符号”。在Python中,一种明显的方法是使用dict。 考虑以下: (请注意,y0,y1和y2只是抽象标识