gpt4 book ai didi

php - 使用 php mysql 的更新语句不起作用

转载 作者:行者123 更新时间:2023-11-29 08:37:25 25 4
gpt4 key购买 nike

我有一个包含以下值的表格:

Table
-----------------------------------------------------------
Column | Type | Default
-----------------------------------------------------------
name varchar(100) none
loginCount int(11) 0
lastLoginDate datetime 0000-00-00 00:00:00
-----------------------------------------------------------

现在,我想检查用户是否正确登录,如果是,则相应地更新 loginCountlastLoginDate

php脚本如下:

<?php
// Verification query..
if($row = mysql_fetch_array($result, MYSQL_ASSOC)){
$sql = "UPDATE table
SET `loginCount` = `loginCount` + 1,
`lastLoginDate` = now()
WHERE `name` = '".$username"'";
$result = mysql_query($sql);
}
?>

问题是,这不起作用!

但是,如果我直接登录 mysql 控制台来使用相同的内容,就会发生更新!

你能告诉我我在这里做错了什么吗?

谢谢!

最佳答案

结束引号之前缺少用于连接的 .

WHERE `name` = '".$username"'";
//------------------------^^^

应该是

WHERE `name` = '".$username . "'";
//--------------------------^^^

或者更好的是,省略连接,因为您用双引号引起来。

$sql = "UPDATE `table` SET ..... WHERE `name` = '$username'";

这意味着您可能没有启用 error_reporting,否则您会看到语法错误。

类似于:

Parse error: syntax error, unexpected '"'"' (T_CONSTANT_ENCAPSED_STRING)...

ini_set('display_errors', 1);
error_reporting(E_ALL);

最后,它不应该引起问题,根据发布的代码,我不会期望,但重用 $result 是不明智的,这是您第一个的结果资源变量(这里看不到) ) 询问。一旦它被 UPDATE 语句中的 TRUE/FALSE 覆盖,您将无法在以后需要时再次从中获取。使用不同的变量来表示UPDATE成功/失败。

$other_var_not_result_for_clarity = mysql_query($sql);

关于php - 使用 php mysql 的更新语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14887655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com