如何使用 $stmt = $connect->prepare 为当前会话用户插入值
Posted
技术标签:
【中文标题】如何使用 $stmt = $connect->prepare 为当前会话用户插入值【英文标题】:How to insert values for the current session user using $stmt = $connect->prepare 【发布时间】:2021-12-27 12:24:11 【问题描述】:这是我当前的代码,用于将一些附加信息添加到名为klantinfo
的数据库表中。此信息在用户登录后添加。在登录时,给定的用户名被插入到login
表中,但也插入到klantinfo
表中。这样我可以将数据库中的用户名与会话中的用户名进行比较,这样我就可以为登录用户显示正确的数据。
if (!$error)
$stmt = $connect->prepare("
INSERT INTO klantinfo (voornaam, achternaam, telefoonnummer, straat, straatnummer, stad, postcode)
VALUES(?, ?, ?, ?, ?, ?, ?)");
$stmt->bind_param("sssssss", $voornaam, $achternaam, $telnr, $straat, $straatnummer, $stad, $postcode);
if($stmt->execute())
$success_message = "De registratie is gelukt. U kunt nu inloggen.";
else
$error_message = "Error. Probeer het later opnieuw.";
但是,这只是将值插入到数据库表的新行中。我希望它专门将值插入到当前会话中的用户已经存在的行(其中已经有用户名的行)中。
我已经尝试过其他查询,但没有成功。
例如,我尝试将其添加到查询中:
WHERE username_info='$user'
没有任何效果!
【问题讨论】:
请参阅介绍性 SQL 教程。如果要更改现有行,只需使用UPDATE
查询,而不是 INSERT
已经试过了。也没有用。
具体是怎么工作的?展示您的尝试并解释您遇到的错误或问题。如果您想更改一行,您肯定需要UPDATE
。如果您在编写 UPDATE
声明时犯了错误,那是另一个问题,要解决它,我们需要查看详细信息。
【参考方案1】:
您应该使用UPDATE
语句而不是INSERT
语句。 UPDATE
更改数据库中的值而不插入新行,而INSERT
将另一行添加到数据库中。你可以参考这里:
UPDATE(docs)
INSERT(docs)
INSERT
UPDATE
【讨论】:
谢谢!现在我只是不知道如何使用 $stmt = $connect -> prepare 和 $stmt->bind_param 这是一个例子:link 谢谢!这帮助我解决了它。我以一种非常低效的方式解决了它,但它确实有效。以上是关于如何使用 $stmt = $connect->prepare 为当前会话用户插入值的主要内容,如果未能解决你的问题,请参考以下文章
java中 String strurl; Connection conn; Statement stmt; ResultSet rs;是啥意思