簡體   English   中英

無法檢索數據,MySQL PHP PDO

[英]Unable to retrieve data, mysql php pdo

我有一個問題,我無法在生產盒上從mysql獲得任何結果,但可以在開發盒上得到,我們將PHP 5.3與MySQL(pdo)結合使用。

$sd = $this->dbh->quote($sd);
$si_sql = "SELECT COUNT(*) FROM tbl_wl_data 
           WHERE (site_domain = $sd OR siteDomainMasked = $sd);";
if($this->dbh->query($si_sql)->rowCount() > 0) {
    //gets to here, just doesnt get through the loop
    $sql = "SELECT pk_aid, site_name, site_css, site_img_sw, supportPhone FROM tbl_wl_data
            WHERE (site_domain = $sd OR siteDomainMasked = $sd);";
    foreach($this->dbh->query($sql) as $wlsd) { //-- fails here
        if($wlsd['wl_status'] != '1') {
            require "_domainDisabled.php";
            exit;
        }
        $this->pk_aid = $wlsd['pk_aid'];
        $this->siteTitle = $wlsd['site_name'];
        $this->siteCSS = $wlsd['site_css'];
        $this->siteImage = $wlsd['site_img_sw'];
        $this->siteSupportPhone = $wlsd['supportPhone'];
    }
} else {
    throw new ERR_SITE_NOT_LINKED;
}

它似乎似乎沒有陷入困境,我在navicat中運行了查詢,並返回了數據。

真的很困惑:S

下列:

$si_sql = "SELECT COUNT(*) FROM tbl_wl_data WHERE (site_domain = $sd OR siteDomainMasked = $sd);";
if ($this->dbh->query($si_sql)->rowCount() > 0) ...

即使表中沒有內容,也將始終評估為TRUE。 實際上,它將始終返回一個名為COUNT(*)的單行,其中包含與WHERE子句匹配的行數。

您應該刪除第一個if ,然后改為:

$si_sql = "SELECT pk_aid, site_name, site_css, site_img_sw, supportPhone FROM tbl_wl_data WHERE (site_domain = $sd OR siteDomainMasked = $sd);";
if ($this->dbh->query($si_sql)->rowCount() > 0) {
    // foreach here
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM