-3

私はコーディングに関してはほとんど初心者なので、知識が不足していて申し訳ありません。

1 つのデータベース テーブル (ユーザーの ID 番号) から外部キー属性を取得しようとしているのでid、その詳細を別のデータベース テーブルに保存するために使用される変数にすることができます。

そこから、ログイン時にそのユーザーの ID にリンクされたすべての保存済みレコードを表示できます。

私の問題は、ユーザー ID を取得し、それを変数にしてデータベースに保存することです。それを機能させることができないようです。ユーザー ID を削除すると、残りのコードは機能しますが、テーブルに保存する必要があります。

これが私のコードです:

require_once( "dbconnect.php" );
try 
{
  $db = getConnection();    
  function get_id($db) 
  {   
    $username= $_SESSION['username'];
    $result = $db->query(
        "SELECT userID FROM users where username='$username'");
    return $result;
  }
  $uID = get_id($db); 

  $userID= $uID->setFetchMode(PDO::FETCH_NUM);
  $title = $Result->title;
  $desp = $Result->description;

  $sql = "INSERT INTO saved (userID, title, desp
          VALUES ('$userID', '$title', '$desp')";
4

3 に答える 3

1

適切な方法

function get_subid($db,$username) 
{   
    $stm = $db->prepare("SELECT userID FROM users where username=?");
    $stm->execute(array($username));
    return $stm->fetchColumn();
}
$userID = get_subid($db,$_SESSION['username']); 
于 2013-04-16T13:01:21.993 に答える
-1

クエリで userid 変数を囲む引用符を削除してみてください:

$sql = "INSERT INTO saved (userID, title, desp) VALUES ($userID, '$title', '$desp')";
于 2013-04-16T12:49:03.120 に答える
-1

次のことを試してください。

require_once( "dbconnect.php" ); 
try { 
/** * ** connect using the getConnection function written in myfunctions.php ** */ $db = getConnection();

function get_subid($db) {
$username= $_SESSION['username']; //variable accessed through the function 
$query = $db->query("SELECT userID FROM users where username='$username'");

$row = $query->row(); //Get's the first Row
$result = $row->userID; //Get's the field userID of this first row
return $result; 
} 
$uID = get_subid($db);

            $title = $Result->title;
            $desp = $Result->description;

            // insert into database
$data = array(
  'userID' => $uID,
  'title' => $title,
  'desp' => $desp
);
$db->insert('saved', $data);

これはあなたが望むものでなければなりません(コメントを参照してください)

于 2013-04-16T13:04:22.883 に答える