簡體   English   中英

使用PHP如何從數據庫表中檢索某個字段值,然后將該單個字段值輸入到新表中

[英]Using PHP how do I retrieve a certain field value from a database table and then input that single field value into a new table

這是我嘗試過的...我正在使用select語句從父表中獲取id,其中電子郵件等於用戶提供的電子郵件。 從父表中獲取id之后,我想將此id設置為子表中的parent_id字段,並將其設置為子表中的字段值。

例如,我的父表有id,first_name,last_name,地址,電話,電子郵件,picture_approval和日期。 然后子表具有id,child_first_name,child_last_name和parent_id

// already connected to database successfully
   {
        try
        {
            $sql = 'INSERT INTO parents SET
            first_name = :fname,
            last_name = :lname,
            address = :address,
            phone = :phone,
            email = :email,
            picture_approval = :picture,
            date = NOW()';

            $s = $pdo->prepare($sql);
            $s->bindValue(':fname', $_POST['g_first_name']);
            $s->bindValue(':lname', $_POST['g_last_name']);
            $s->bindValue(':address', $_POST['address']);
            $s->bindValue(':phone', $_POST['phone']);
            $s->bindValue(':email', $_POST['email']);
            $s->bindValue(':picture', $_POST['pictures']);
            $s->execute();
        }
        catch (PDOException $e)
        {
            $errors[] = 'Error adding parent to database.';
        }
    }
//the above code works perfectly

但接下來的部分永遠不會奏效。

try 
   {
        $sql = "SELECT id FROM parents WHERE email = :email";
        $s = $pdo->prepare($sql);
        $s->bindValue(':email', $_POST['email']);
        $s->execute();
        $s->bind_result($returned_id);

        $s->fetch();

        $fieldValue = "$returned_id";


   }
   catch (PDOException $e)
    {
        $errors[] = 'Error retrieving parent.';
    }

然后我想設置我的INSERT INTO子語句...但不確定如何,因為我的SELECT語句似乎沒有正常工作。 我確實發現這個PHP函數從數據庫中提取字段值但它只輸出值,我需要將它放入另一個表中。

不要手動查找ID,而是使用lastInsertId()

$s->execute();
$returned_id = $pdo->lastInsertId();

然后您可以根據需要使用它。

$fieldValue = $returned_id;

$ returned_id不應該在引號中

一個很好的方法是創建自己的功能。

 function getParentID($conn, $email) 
        {
            $sql = "SELECT id FROM parents WHERE email='$email' LIMIT 1";
            foreach ($conn->query($sql) as $row) 
                {
                    $parentIDinside = $row['id'];
                } 
            return $parentIDinside;
        }

然后調用該函數。 您將傳遞數據庫連接和電子郵件地址,該函數將找到與該電子郵件地址匹配的parentID。 可以修改此功能。

 include 'includes/db.inc.php'; //my database connection that creates a new $pdo connection

        $parentID = getParentID($pdo, $_POST['email']);

現在,變量$ parentID使用提供的電子郵件存儲數據庫中的實際parentID,您可以在INSERT語句中或其他任何您喜歡的地方使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM