Php 使用PDO插入会话数据
我在网上浏览了一个小时左右,不知道如何解决我的问题。$\u会话中的用户名['username']无法以我尝试过的方式存储在我的数据库中,因此我希望获得一些帮助。我有一个表单,其中包含用户输入的数据,我还想用这些数据存储用户名。该表使用正确的数据填充,除了按col添加的_,它只获取0作为值。如何使用准备好的语句将用户名存储在数据库中 到目前为止,这种组合在其他组合中已经尝试过,但没有成功Php 使用PDO插入会话数据,php,mysql,session,pdo,prepared-statement,Php,Mysql,Session,Pdo,Prepared Statement,我在网上浏览了一个小时左右,不知道如何解决我的问题。$\u会话中的用户名['username']无法以我尝试过的方式存储在我的数据库中,因此我希望获得一些帮助。我有一个表单,其中包含用户输入的数据,我还想用这些数据存储用户名。该表使用正确的数据填充,除了按col添加的_,它只获取0作为值。如何使用准备好的语句将用户名存储在数据库中 到目前为止,这种组合在其他组合中已经尝试过,但没有成功 if (isset($_POST['submit'])) { $trackname = $_POST['
if (isset($_POST['submit'])) {
$trackname = $_POST['trackname'];
$year = $_POST['year'];
$trackurl = $_POST['trackurl'];
$stmt = $DB_con->prepare("INSERT INTO tbl_music (trackname, year, url, added_by)
VALUES (:trackname, :year, :url, :added_by)");
$stmt->execute(array(
':trackname' => $trackname,
':year' => $year,
':url' => $trackurl,
':added_by' => $_SESSION['username']
));
范例
$username = $_SESSION['username'];
$stmt->bindParam(':trackname', $trackname);
$stmt->bindParam(':year', $year);
$stmt->bindParam(':url', $trackurl);
$stmt->bindParam(':added_by', $username);
$stmt->execute();
我可以回显来自$\u会话['username']的数据,但不能根据请求将其存储在数据库中。
我看到这种情况的唯一机会是,您的added\u by
列是一个int
您的字符串进入,并被转换为整数,使其为零。您遇到了什么sql错误?据我所知和所见都没有。请尝试在不使用prepare语句的情况下执行sql INSERT,并查看是否有任何错误。然后尝试添加
$DB\u con->setAttribute(PDO::ATTR\u ERRMODE,PDO::ERRMODE\u WARNING)代码>在准备语句之前,添加打印($sth->errorInfo())代码>执行后,尝试查找是否有任何错误,因为您添加的_by列是int?注意,您未能向我们显示您的架构