php - 如何将 PDO 数据库中的项目检索到数组中以检索字符串

标签 php mysql pdo

我正在尝试从存储在数据库中的 session token 中检索用户(1 - 只有一个带有 session token )的用户名。该行的格式为 ID、代码、用户名。我正在尝试检索包含该行的行,然后将该行存储到我可以检索用户名的数组中。

表 SQL

CREATE TABLE `signup` (

    `id` int(11) NOT NULL AUTO_INCREMENT,

    `code` varchar(255) COLLATE utf8_unicode_ci NOT NULL,

    `username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,

    PRIMARY KEY (`id`),

    UNIQUE KEY `code` (`code`)

) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;

表格信息

id  code            username
1   123-145-546-48  CallumCarmicheal

我一直在测试的当前代码

$db2 = new PDO("mysql:host={$mysql_host};dbname={$mysql_database};charset=utf8", $mysql_user, $mysql_password, $options);

$token = "123-145-546-48";

$query = "
    SELECT
        id,
        code,
        username
    FROM signup
    WHERE
        code = $token
    ";

try {
    $stmt   = $db2->prepare($query);
    $stmt->execute();
} catch (PDOException $ex) {
    die("Failed to run query: " . $ex->getMessage());
}


// return the Username from getting the token
return ...

我想不通,这可能很简单,但我做了一个注册系统,要求管理员生成 session 代码并设置用户名,在注册表单中它会显示用户名,用户可以输入他的电子邮件和密码.这将检索用户名,但我尝试过的每个用户名都会返回一个空字符串,或者不会返回任何内容。用户注册后, session token 将被删除。

最佳答案

您需要在运行查询后获取结果。

http://php.net/manual/en/pdostatement.fetch.php

$result = $stmt->fetch(PDO::FETCH_ASSOC);
echo $result['username']; // or do whatever you want with the username

我也更喜欢参数化我的 SQL。

$query = "SELECT id, code, username
          FROM signup
          WHERE
          code = ?";
try {
   $stmt   = $db2->prepare($query);
   $stmt->execute(array($token));

关于php - 如何将 PDO 数据库中的项目检索到数组中以检索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27339774/

相关文章:

php - Facebook 上的链接功能如何运作?

php - 在php中改变gif动画的颜色

mysql - SQL 语法配置值选择

php - PDO 与 Azure PostgreSQL 建立连接非常慢

javascript - 如何将表排序器中的 href 值发送到对话框模式?

php - CodeIgniter:提交无效表单后如何保留值?

php - MySQL-如何修改父项/子项选择查询以将更多子项添加到现有数组/JSON?

mysql - 我可以确定Mysql的Last Insert Id吗?

java - 使用 hibernate 无法获取完整数据

php - PHP PDO 语句可以接受表名或列名作为参数吗?