Php MySQL查询插入问题

Php MySQL查询插入问题,php,mysql,Php,Mysql,我试图做一个简单的查询,用用户上次登录的时间更新用户数据库。我的SQL数据库有几个列id | first | name | last | name | username | password | date | created | last | login我尝试运行的查询是: $sql="INSERT INTO (CLL_users) SET last_login= $dateCreated WHERE username= $username"; $result=mysql_query($sql)

我试图做一个简单的查询,用用户上次登录的时间更新用户数据库。我的SQL数据库有几个列
id | first | name | last | name | username | password | date | created | last | login
我尝试运行的查询是:

$sql="INSERT INTO (CLL_users) SET last_login= $dateCreated WHERE username= $username";
$result=mysql_query($sql);
下面是成功验证后加载的页面的全部代码,我确实意识到这是使用SQL注入的最糟糕的方法,但一旦我得到正确的查询,我将为PDO准备的语句重新编码。这只是我在另一个网站上找到的一个示例,我正在修改它以添加最后的登录参数

<?php
session_start();
$host="localhost"; // Host name 
$username="user"; // Mysql username 
$password="XXXXX"; // Mysql password 
$db_name="DB"; // Database name 
$tbl_name="users"; // Table name 
date_default_timezone_set('America/Chicago');
$dateCreated = date('m/d/Y h:i:s a', time());

mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$sql="INSERT INTO (CLL_users) SET last_login= $dateCreated WHERE username= $username";
$result=mysql_query($sql);

if(!session_is_registered(myusername)){
header("location:main_login.php");
}
?>

<html>
    <head>
        <title> Welcome</title>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <LINK href="CLL.css" rel="stylesheet" type="text/css">
    </head>
 <body>
     <?php echo $dateCreated ?>
<p>Login Successful</p>
</body>
</html>

欢迎
登录成功


日期和用户名变量周围需要单引号

此外,您需要使用update语句来更新现有记录,而不是执行insert。 如果您回显$sql变量,您将看到insert语句无效,如果您尝试在数据库上手动运行它,它将无法工作


例如,
$sql=“UPDATE CLL\u users SET last\u login='$dateCreated',其中username='$username'

日期和用户名变量周围需要单引号

此外,您需要使用update语句来更新现有记录,而不是执行insert。 如果您回显$sql变量,您将看到insert语句无效,如果您尝试在数据库上手动运行它,它将无法工作


例如,
$sql=“UPDATE CLL\u users SET last\u login='$dateCreated',其中username='$username'

不能使用INSERT更新表中的现有记录。使用更新查询

$sql="UPDATE CLL_users SET last_login= '$dateCreated' WHERE username= '$username'";

不能使用INSERT更新表中的现有记录。使用更新查询

$sql="UPDATE CLL_users SET last_login= '$dateCreated' WHERE username= '$username'";

首先,我建议用单引号将变量括起来,接下来我建议您在插入时使用以下语法。在表(第1列、第2列、第3列)中插入值('value1'、'value2'、'value3')


如果要更新行而不是插入内容,也可以将INSERT INTO替换为UPDATE

首先,我建议用单引号将变量括起来,接下来我建议您在插入时使用以下语法。在表(第1列、第2列、第3列)中插入值('value1'、'value2'、'value3')

$sql="update CLL_users SET last_login= $dateCreated WHERE username= $username";
$result=mysql_query($sql);

如果要更新行而不是插入内容,也可以将INSERT INTO替换为UPDATE

错误的原因是,如果要更新表,则不必使用“插入查询并设置”选项,请遵循以下for sql变量

$sql="update CLL_users SET last_login= $dateCreated WHERE username= $username";
$result=mysql_query($sql);
 $sql = "UPDATE CLL_users SET last_login= '$dateCreated' WHERE username='$username'";

错误原因是,如果要更新表,则不必使用“插入查询并设置”选项,请遵循以下sql变量

 $sql = "UPDATE CLL_users SET last_login= '$dateCreated' WHERE username='$username'";

您没有真正说明您遇到的问题。你有错误吗?如果是,什么错误?问题是它没有更新数据库,我没有收到任何错误,如果我回显其中存储了日期的变量,它将正确回显。我不确定我的查询是否适合更新数据库。我尝试了几种不同的方法,但都没有成功,@Yamaha32088
INSERT
在数据库中创建一个新条目。对于更新,您需要使用
update
。您没有真正指定您遇到的问题。你有错误吗?如果是,什么错误?问题是它没有更新数据库,我没有收到任何错误,如果我回显其中存储了日期的变量,它将正确回显。我不确定我的查询是否适合更新数据库。我尝试了几种不同的方法,但都没有成功,@Yamaha32088
INSERT
在数据库中创建一个新条目。对于更新,您需要使用
update
。感谢您的帮助,我发现了更多信息,而不仅仅是我使用INSERT语句时的错误。我忽略了这样一个事实:我调用的是数据库的username变量,而不是登录用户的username。此外,我在数据库中的user和name之间有一个低于_的分数,但我的查询只是“username”。感谢您的帮助,我实际上找到了更多,而不仅仅是我使用INSERT语句时的错误。我忽略了这样一个事实:我调用的是数据库的username变量,而不是登录用户的username。此外,我在数据库中的用户名和名称之间有一个欠分,但我的查询只是“用户名”。