好的,所以我有一个在客户购买数字代码后执行的功能。该函数非常简单,在我认为可以修复它而不是使用mysqli之后使用pdo。一切正常,但用户名变量没有被放入表中,即使我认为我可以回应它并在其他sql命令中使用它就好了,但由于某种原因不是这个特定的行。
以下是代码:
function redeemToken($amount = 1){
$db_tokens = new PDO('mysql:host=IP;dbname=DB', "U", "P");
$qOne = $db_tokens->query("SELECT * FROM tokens WHERE used='0' LIMIT $amount;"); //selects the first unused token
$dataToken = $qOne->fetch();
$token = $dataToken["token"];
$qTwo = $db_tokens->query("UPDATE tokens SET used='1', usedby='".$php_session_username."', date_used=NOW() WHERE token='".$token."';"); //uses the token for the current logged in user
$db_kvs = null;
}
正如我所说,除了用户名值($ php_session_username)没有添加到表中之外,所有内容都执行得很好。但当echo'd out清楚地显示登录的用户名以及我在该页面上运行的任何其他sql命令时;它工作正常。
非常感谢任何帮助,所以提前感谢。
答案 0 :(得分:2)
我不确定,但我猜问题是$ php_session_username不是函数的局部变量,函数也没有在其参数中获取值。尝试这样的事情。
function redeemToken($amount = 1,$php_session_username)
{
//function body
}
($amount = 1,$php_session_username);