我正在尝试从存储在数据库中的 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/