以下是我的應用程序的代碼片段。請記住,我對PDO非常非常陌生(如今,已經開始搞清楚了),所以我有點困惑。
現在,if
語句返回1,因爲它應該。這是預料之中的。然而,在我設置$node
後發生了什麼意外:設置後,它看起來是FALSE。什麼?之前幾行,我的fetch()
嘗試返回了預期值,所以我不知道發生了什麼。
$sth = $dbh->prepare("
SELECT *, COUNT(*) AS num_rows
FROM flow
INNER JOIN flow_strings
USING(node_id)
WHERE
(
parent = 0
OR parent = :user_flow
)
AND source = 0
AND string = :input
");
$sth->bindParam(':user_flow', $user->info->flow);
$sth->bindParam(':input', $input_sentence);
$sth->execute();
// If node exists.
if ($sth->fetch()->num_rows > 0)
{
// Get the information for the node.
$node = $sth->fetch();
[...] etc
我猜遊標是向前移動,然後沒有什麼可以讀取,所以返回FALSE。儘管如此,還是有辦法解決這個問題的!當我運行$sth->fetch()->num_rows
時,我不想改變任何事情 - 我只是想讀取一個值。有沒有解決方法?我在做些奇怪的事情嗎?我很迷茫,哈哈。
謝謝! :)
編輯:
Notice: Undefined variable: node_count ... on line 56
// Retrieve all child nodes under $parent.
$node_query = $dbh->prepare("
SELECT *, COUNT(*) AS num_rows
FROM flow
WHERE parent = :parent
");
$node_query->bindParam(':parent', $parent);
$node_query->execute();
// If child nodes exist.
if ($node_count = $node_query->fetch() && $node_count->num_rows > 0) // Line 56
{
[...] etc
你嘗試過閱讀文檔? –