我有2个MySQL表:
我想为显示来自 候选人和工作表的信息的每位候选人建立个人资料。每个候选人可以有多个工作条目。
这是我正在做的事情:
<?php
if (isset($_GET['uniqid'])) {
$uniqid = $_GET['uniqid'];
}
$queryCandidate = "SELECT * FROM candidate WHERE uniqid = '{$uniqid}'";
$queryJob = "SELECT * FROM job WHERE candidate_uniqid = '{$uniqid}'";
mysqli_begin_transaction($conn, MYSQLI_TRANS_START_READ_ONLY);
$resultCandidate = mysqli_query($conn, $queryCandidate);
$resultJob = mysqli_query($conn, $queryJob);
mysqli_commit($conn);
$rowCandidate = mysqli_fetch_assoc($resultCandidate);
while($rowJob = mysqli_fetch_assoc($resultJob)){
// echo $rowJob['some_value'] . '<br>';
// display data from job table until there is nothing left to fetch
}
// display data from candidate table
//echo $rowCandidate['candidate_name'] . '<br>';
//echo $rowCandidate['phone'] . '<br>';
?>
我的问题是:
$_GET['uniqid']
获得的变量获取数据。这样做时我应该记住哪些安全措施?非常感谢!
答案 0 :(得分:0)
您应该使用SQL INNER JOIN :
执行此操作Rails.root.join('grandparent_dir', 'parent_dir', 'file.txt')
INNER JOIN是一个关键字,它根据每个表中具有相同值的一个(或多个)列来连接2个表,显示所有可能的组合。
以下是使用INNER JOIN的可能结果:
正如您可能已经注意到的那样,我还添加了SELECT c.* , j.* FROM candidate AS c
INNER JOIN job AS j ON c.uniqid = j.candidate_uniqid
WHERE uniqid = @u
而不是@u
。这是我使用的一种保护,它就像SQL中的一个变量,必须在主查询之前的一个查询中设置。完整代码如下:
$uniqid
如果您(或其他任何人)需要进一步解释,请询问!