gpt4 book ai didi

php - 无法将 session 变量存储到数据库中

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

我在session中存储了变量。我想将 session 变量和通过表单填写的其他信息插入表中。我收到消息说它已创建,但表中没有显示任何内容。

我想获取 session 变量并将其存储到“用户名”中我尝试了 $username=$r['username'];但不起作用。

<?php
session_start();
if($_SESSION['user']==''){
header("Location:login.php");
}else{
$dbh=new PDO('mysql:dbname=mydb;host=127.0.0.1', 'myusername', 'mypassword');


$sql=$dbh->prepare("SELECT * FROM users WHERE id=?");
$sql->execute(array($_SESSION['user']));
while($r=$sql->fetch()){

$username=$r['username']; <-im not sure if this is correct.
$ime=$_POST['ime'];
$priimek=$_POST['priimek'];
$email=$_POST['email'];
$izob=$_POST['izob'];
$izk=$_POST['izk'];
$prib=$_POST['prib'];
$opis=$_POST['opis'];
$sql = "INSERT INTO profil (ime, priimek, email, izob, izk, prib, opis) VALUES( `username`,`ime` , `priimek ` , `email` , `izob` , `izk` , `prib` , `opis`)";

try {
$dbh->exec($sql);
echo " created successfully";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
}

$conn = null;
}
?>

CREATE TABLE profil(
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(10),
ime VARCHAR(10) NOT NULL,
priimek VARCHAR(10) NOT NULL,
email VARCHAR(20),
izob VARCHAR(20),
izk VARCHAR(10),
prib VARCHAR(10),
opis VARCHAR(100),
);

感谢帮助

最佳答案

两个问题:

首先,您只在插入列表中指定了 7 个列名,但给出了 8 个值。最重要的是,您未能指定的列名称是 username 列,这就是您所询问的内容。其次,您应该在插入中使用实际的 PHP 变量,而不是用反引号转义的列名。请尝试以下操作:

$sql = "INSERT INTO profil (username, ime, priimek, email, izob, izk, prib, opis) ";
$sql = $sql . "VALUES(".$username.", ".$ime.", ".$priimek$.", ".$email.", ".$izob.", ".$izk.", ".$prib.", ".$opis.")";

关于php - 无法将 session 变量存储到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38649780/

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