我尝试获取 gmail = $gmail 的 id 并将其用于 UPDATE 表
但我不能使用 from id 和 showin 错误未定义属性:mysqli_result::$fetch_assoc
函数添加验证码($gmail , $random) {
$connection = mysqli_connect(DataBaseManager::HOST, DataBaseManager::USER, DataBaseManager::PASSWORD, DataBaseManager::DATABASENAME);
mysqli_set_charset($connection, "utf8");
$sqlQuery = "SELECT id FROM users WHERE gmail='$gmail'";
$result = mysqli_query($connection, $sqlQuery);
if ($result->num_rows > 0) {
$sqlCommand = "UPDATE users
SET verificationcode = '$random'
WHERE id = $result->fetch_assoc()";
}
if(mysqli_query($connection, $sqlCommand)){
return true;
}else{
echo("Error description: " . mysqli_error($connection));
return false;
}
}
最佳答案
你必须使用 curly braces在对象中调用方法时:
$sqlCommand = "UPDATE users
SET verificationcode = '$random'
WHERE id = {$result->fetch_assoc()}";
另一种方法是使用连接:
$sqlCommand = "UPDATE users
SET verificationcode = '$random'
WHERE id = " . $result->fetch_assoc();
请注意,在这种情况下,您可以将两个 SQL 语句合并为一个,例如 update .. where id = (select id from ...)
。
另请注意,您发布的代码容易受到 SQL 注入(inject)攻击。参见 How can I prevent SQL injection in PHP?
关于php - 无法显示 SELECT 结果 sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54558517/