比较两个不同表中的值,如果相等则显示


Compare values from two different tables, if equal then display

我有一个名为$row['mykey']的变量,它是从表1上的查询生成的,我已经重复了它到我的页面,它确实显示我正在寻找的值。现在我需要使用这个变量来设置我的新查询在表2中,只显示与表2中的contractor_lock匹配的结果。$stmt1一个可以很好地显示整个表,但我想使用$stmt2,但没有得到数据结果。谢谢你的帮助!

try {
 $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

 $stmt1 = $conn->prepare("SELECT client_id, companyname, contact, contractor_lock FROM table_two");

 $stmt2 = $conn->prepare("SELECT client_id, companyname, contact, contractor_lock FROM table two WHERE contractor_lock = $row['mykey']"); 
 $stmt->execute();
 $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 
 foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { 
     echo $v;
 }
 }
catch(PDOException $e) {
 echo "Error: " . $e->getMessage();
 }
 $conn = null;
 }

您必须将$row['mykey']连接到stmt2,而不是直接包含它,因为它可能被解释为字符串。

应该是这样的

$stmt2 = $conn->prepare("SELECT client_id, companyname, contact, contractor_lock FROM table two WHERE contractor_lock = ?");
$stmt2->execute($row['mykey']);