我正在制作一个脚本,将数据从mysql数据库插入/更新到postgres数据库。
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
$postgres = "SELECT * FROM res_partner";
echo $postgres . "'n";
$pgresult = pg_query($db,$postgres);
$a = 0;
if(pg_num_rows($pgresult) > 0)
{
while($pgrow = pg_fetch_assoc($pgresult))
{
if($pgrow["id"] == $row["customer_id"])
{
$a + 1;
}
else
{
$a + 0;
}
}
var_dump($pgrow);
exit();
我想检查mysql数据库中的id是否也在postgres数据库中。但是$pgrow在我的var_dump中返回"bool(false)"。我不知道为什么。
因为var_dump()
在while循环之外。
循环将继续调用pg_fetch_assoc
,直到返回错误
将调用放入循环中以查看当前行的内容:
while($pgrow = pg_fetch_assoc($pgresult))
{
if($pgrow["id"] == $row["customer_id"])
{
$a + 1;
}
else
{
$a + 0;
}
var_dump($pgrow);
}
或者使用适当的调试器(如XDebug)来避免编写类似的代码
你不能做一些类似SELECT true FROM res_partner WHERE id = $customer_id
的事情,这样就不会做while循环吗?
然后,如果存在具有单个值true
的一行,或者由于没有返回任何行而获得false
。