duancuo1234 2016-08-19 21:26
浏览 44
已采纳

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

I have a variable called $row['mykey'] that was genterated from a query on table one, I have echoed it to my page and it does display the value I'm looking for. Now I need to use this varible to set my new query on table two, to only display results if it matches contractor_lock from table two. $stmt1 one works fine to display the entire table, but I want to use $stmt2 but get no data results. Thanks for any help!

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;
 }
  • 写回答

1条回答 默认 最新

  • duanmen2189 2016-08-19 21:41
    关注

    You have to concatenate $row['mykey'] to stmt2 instead of including it directly because it might be interpreted as a string.

    It should be like this

    $stmt2 = $conn->prepare("SELECT client_id, companyname, contact, contractor_lock FROM table two WHERE contractor_lock = ?");
    $stmt2->execute($row['mykey']);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应