2012-11-22 41 views
2

因此,如果没有数据,则成功的mysqli_query()返回true,如果有数据(如查询是SELECT,SHOW,DESCRIBEEXPLAIN),则返回mysqli_result对象。在PHP中,如何判断pg_query()是否是返回数据的查询?

但成功的pg_query()它总是返回相同的东西(查询结果资源),而不管是否有数据返回。

我可以使用pg_query()返回值,以确定如果查询要么SELECTSHOWDESCRIBEEXPLAIN像我可以用mysqli_query()呢?

+0

也许'pg_num_rows()'? (虽然听起来很讨厌) –

+0

为什么你需要知道被执行的查询类型?您应该能够将该信息提供给接收结果句柄的代码段。 – didierc

回答

3

没有充分的证据来确定pg扩展函数中的'select'与'insert/update'。可以使用两个函数,但只有在某些行被返回或受sql影响的情况下才能使用。

// update/insert/delete sql and affect some row 
pg_num_rows($res); // 0 
pg_affected_rows($res); // n 

// select return some result 
pg_num_rows($res); // n 
pg_affected_rows($res); // 0 
+0

当您知道使用Pg时,您可以执行INSERT ... RETURNING * *将返回插入的行,这更加正确。 – greg

相关问题