出于某种原因,我不能让这个为我的生活工作,我是新的准备好的陈述!
$q = $dbc -> prepare ("SELECT * FROM accounts WHERE email = ? && logcount = ''");
$q -> bind_param ('s', ($_SERVER['QUERY_STRING']));
$row = $q -> fetch_array(MYSQLI_ASSOC);
$q -> execute();
$q -> store_result();
if ($q -> num_rows == 1) {
$q = $dbc -> prepare("UPDATE accounts SET logcount = '0' WHERE email = ?");
$q -> bind_param('s', ($_SERVER['QUERY_STRING']));
$q -> execute();
echo 'Congratulations ' . $row['username'] . ' your account is now active!
';
}
任何想法为什么$ row ['用户名']不会打印?它返回一个:调用未定义的方法mysqli_stmt :: fetch_array()
谢谢。
在这种情况下,您不需要fetch_array
。
如果要使用查询中的数据,则需要在调用bind_result
后使用fetch
和execute
。
你需要在获取结果之前调用$q -> execute();
。
你似乎做错了,当你调用execute它返回一个结果对象,这就是你所谓的fetch方法:
$q = $dbc->prepare ("SELECT * FROM accounts WHERE email = ? && logcount = ''");
$q->bind_param ('s', ($_SERVER['QUERY_STRING']));
//Updated Here
$result = $q -> execute();
if ($result->num_rows == 1)
{
$assocData = $result->fetch_array(MYSQLI_ASSOC);
//Do other stuff
}