2016-07-29 149 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