Php 使用PDO插入会话数据

Php 使用PDO插入会话数据,php,mysql,session,pdo,prepared-statement,Php,Mysql,Session,Pdo,Prepared Statement,我在网上浏览了一个小时左右,不知道如何解决我的问题。$\u会话中的用户名['username']无法以我尝试过的方式存储在我的数据库中,因此我希望获得一些帮助。我有一个表单,其中包含用户输入的数据,我还想用这些数据存储用户名。该表使用正确的数据填充,除了按col添加的_,它只获取0作为值。如何使用准备好的语句将用户名存储在数据库中 到目前为止,这种组合在其他组合中已经尝试过,但没有成功 if (isset($_POST['submit'])) { $trackname = $_POST['

我在网上浏览了一个小时左右,不知道如何解决我的问题。$\u会话中的用户名['username']无法以我尝试过的方式存储在我的数据库中,因此我希望获得一些帮助。我有一个表单,其中包含用户输入的数据,我还想用这些数据存储用户名。该表使用正确的数据填充,除了按col添加的_,它只获取0作为值。如何使用准备好的语句将用户名存储在数据库中

到目前为止,这种组合在其他组合中已经尝试过,但没有成功

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?注意,您未能向我们显示您的架构