2016-07-29 147 views
0

我已经存储了变量。我想将会话变量和其他通过表单填充的信息插入表中。我得到了它创建的消息,但没有显示在表格中。不能将会话变量存储到数据库中

我想获取会话变量并将其存储到“用户名” 我试过$ 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), 
); 

感谢您的帮助

+0

'的print_r($ R)',(在上面,你认为这个问题是,并粘贴结果行) – FrankerZ

回答

0

嗨日Thnx的帮助,我发现soulution。 此行是错误的:

$sql= "INSERT INTO test (`column`) VALUES( '$value1' '$value2)"; 

TNX家伙

0

两个问题:

首先,你只指定在插入列表中的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.")"; 
+0

我试过,但还是不起作用。我把它可能是变量用户名的问题,但我可以回显ok.still没有显示在分贝 – OverHeat

0

删除username,并添加反引号来插入

它应该是这样的:

$sql = "INSERT INTO profil (`ime`, `priimek`, `email`, `izob`, `izk`, ``prib, `opis`) VALUES(`ime` , `priimek ` , `email` , `izob` , `izk` , `prib` , `opis`)"; 
+0

我需要用户名的必要。 $用户名= $ R [ '用户名'];回声“$用户名”;它打印变量。现在我需要将它存储在表格中 – OverHeat