为什么我的变量在我的 SELECT 语句中不起作用

-2 php

session_start();
$username = $_SESSION['username'];

$db = new PDO("mysql:host=".DBHOST.";charset=utf8mb4;dbname=".DBNAME, 
DBUSER, DBPASS);

function keygrabber($username) { //You need to pass a variable into this 
function
global $db; //Gain access to the $db variable, which is out of scope due to 
being inside of a function
$stmt = $db->prepare("SELECT * FROM keys WHERE username='$username'"); 
//Prepare the query
$stmt->execute(); //Execute the query
$results = $stmt->fetchAll(PDO::FETCH_ASSOC); //Fetch the query results
var_dump($results); //Dump the results
}

keygrabber($username);
Run Code Online (Sandbox Code Playgroud)

因此,如果我更改username='$username';username='myactualusername';,它会起作用,即它不会显示任何错误或任何内容。

我基本上试图从与用户用户名匹配的键中获取所有数据。将来我会将其更改为 userID,但现在变量不起作用,因此我无法继续。

谢谢您的帮助

utt*_*ani 5

像这样尝试

$stmt = $db->prepare("SELECT * FROM keys WHERE username='$username'"); 
Run Code Online (Sandbox Code Playgroud)

希望它会有意义..

  • 在 MySQL 中,字符串应该包含在 `''` 中 (2认同)