繁体   English   中英

PHP / MySqli:具有2个表的预准备MySqli语句,并且WHERE不返回数据

[英]PHP/MySqli: Prepared MySqli statement with 2 tables and WHERE not returning data

我正在尝试从犯罪分子数据库的2个表中获取数据,并且当我添加“ AND Crime_name ='FIDEL URBINA'”以仅获取每个罪犯的数据时,它什么也不返回。

这是我的代码和SQL语句,

$stmt = $mysqli->prepare("SELECT criminal_name, event_location FROM criminal_profile, criminal_locations 
    WHERE criminal_profile.criminal_id = criminal_locations.criminal_id");

$stmt->execute();
$stmt->bind_result($criminal_name, $event_location); //get data from statement
$stmt->store_result();


 if($formaat=='xml'){ //XML
            $xml=new SimpleXMLElement('<criminals></criminals>');


            while($stmt->fetch()) // zolang er rijen zijn
            {
                // $criminal_name, Scriminal_pob en $event_location zijn gevuld
                //voeg element criminal_pob toe met naam criminal_pob, criminal_name en event_location:
                $info = $xml->addChild('criminal');
                $item = $info->addChild('criminal_name',$criminal_name);
                $item = $info->addChild('event_location',$event_location);
            }
            header('Content-type: text/xml'); //DIT WERKT NIET? cant send headers after they were sent

            // coderen als JSON:
            echo $xml->asXML();
        }

如图所示,它根据事件发生的地点来重复犯罪分子:

http://grabilla.com/05b0e-a271d885-dc45-47ad-a043-c92d832162bd.png

任何人都有一个想法,为什么当我添加“ AND Crime_name ='FIDEL URBINA'”之类的东西时,它不返回数据? 我还尝试了“ AND Crime_name ='F%'”。

可能是一个匹配的问题,您可以尝试使用like operatore而不是=

"SELECT criminal_name, event_location FROM criminal_profile, criminal_locations 
WHERE criminal_profile.criminal_id = criminal_locations.criminal_id 
AND criminal_name LIKE '%FIDEL URBINA%");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM