[英]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函数从数据库中提取字段值但它只输出值,我需要将它放入另一个表中。
$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.