无法检索数据,mysql php pdo

无法检索数据,mysql php pdo,php,mysql,pdo,Php,Mysql,Pdo,我有一个问题,我不能从mysql中得到任何结果,但可以在开发框中,我们使用PHP5.3和mysql(pdo) 它似乎没有进入循环,我在navicat中运行了查询,它返回了数据 非常困惑:S以下内容: $si_sql = "SELECT COUNT(*) FROM tbl_wl_data WHERE (site_domain = $sd OR siteDomainMasked = $sd);"; if ($this->dbh->query($si_sql)->rowCount()

我有一个问题,我不能从mysql中得到任何结果,但可以在开发框中,我们使用PHP5.3和mysql(pdo)

它似乎没有进入循环,我在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子句匹配的行数

如果,则应废弃第一个
,并改为:

$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
}

到底哪一点出了问题?你输出你的数据吗?行数是多少?@Pekka:foreach($this->dbh->query($sql)作为$wlsd){至少
$sd=$this->dbh->quote($sd)
在这里是完全无用的。上校:因为我们没有使用准备好的语句等,所以我们使用它。我看到你在使用它。不幸的是,它在这里是完全无用的。它没有任何用处。为了使它有任何用处,你必须用引号括起你的变量。为什么不在使用PDO时使用准备好的语句呢question@Kyle: 这可能意味着您的表为空或您的查询无效。如果您的var_dump
rowCount()
,您的表中可能有0。@Netcoder:var_dump($this->dbh->query($si_sql)->rowCount());返回int(1),感谢所有回答的人,另一个开发人员一直在截断数据,然后添加数据。我已经对它进行了排序。。。
$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
}