将一个变量中的两个值插入数据库



我有两个不同的表"用户"和"候选",我正在尝试通过用户选择将值从一个表添加到另一个表。

这是显示"用户"表中"名称"和"姓氏"行的代码:

echo "<select class='form-control custom-select' name='candid'>";
while ($row = $result->fetch_assoc())
{
$candid = $row['name'] .' '. $row['surname'];
echo "<option value='.$candid.'>".$candid."</option>";
}
echo "</select>";

我连接了两列并将它们的值分配给$candid变量。 现在我需要将这些值添加到"候选人"表中的"姓名"和"姓氏"列中。我还尝试了此代码的其他版本:

while ($row = $result->fetch_assoc())
{
echo "<option value='candid'>".$row['name'] .' '. $row['surname']."</option>";
}

使用此 SQL 查询:

$sql = ("INSERT INTO candidates (name, surname) VALUES ('$row[name]', '$row[surname]')");

if ($conn->query($sql) === TRUE)
{
echo "New record created successfully";
}
else
{
// $conn->error only for testing purposes
echo "Error: " . $sql . "<br>" . $conn->error;
}

但它不起作用,所以我有问题。是否可以仅使用PHP和SQL来做到这一点?

当用户提交表单时,所选值为$_POST['candid']。您可以在空格处拆分它,然后插入到表中。

list($name, $surname) = explode(' ', $_POST['candid'], 2);
$stmt = $conn->prepare("INSERT INTO candidates (name, surname) VALUES(?, ?)");
$stmt->bind_param("ss", $name, $surname);
if ($stmt->execute()) {
echo "New record created successfully";
} else {
echo "Record not created";
error_log("candidate record not created: $conn->error");
}

最新更新