2014-03-25 105 views
-7

我一直在試圖找出這個PHP錯誤幾乎一天。嘆。我真的很陌生,但我想我已經明白了。當我運行這段代碼,我得到一個錯誤似乎無法弄清楚這個PHP錯誤

Parse error: syntax error, unexpected 'body' (T_STRING), expecting ')' in /Users/baronjon/Sites/squaredb/functions.php on line 20

這裏是代碼:

<?php 

function add_post($userid, $body) { 
    $sql = "insert into posts (user_id, body, stamp) 
        values ($userid, '". mysql_real_escape_string($body)."', now())"; 

        $result = mysql_query($sql); 

} 
function show_posts($userid) { 
    $posts = array(); 

    $sql = "select body, stamp from posts 
     where user_id ='$userid' order by stamp desc"; 
    $result = mysql_query($sql); 

    while($data = mysql_fetch_object($result)) { 
    $posts[] = array(  'stamp' => $data->stamp, 
               'userid => $userid   
               'body' => $data->body //**This is line 20.** 
          ); 
    } 
    return $posts; 

} 

?> 

作爲新的PHP(和一般的編碼),我意識到這可能是非常簡單的。但我沒有看到它要求我尋找的圓括號。

我查看了PHP手冊,以確保我的語法正確,它看起來非常簡單。

任何人都可以指向正確的方向。

+6

甚至stackoverflow代碼高亮指向你 – zerkms

+0

看看你的數組聲明:你如何定義「郵票」條目和它後面的條目有什麼不同...... – faintsignal

+1

你應該明確地使用語法突出編輯器喜歡'gedit','vi','emacs',... –

回答

4

在您的$posts數組中,您缺少一個尾隨的'引號和一個逗號。

$posts陣列應該是這樣的:

$posts[] = array(  
    'stamp' => $data->stamp, 
    'userid' => $userid,  
    'body' => $data->body //**This is line 20.** 

); 

在PHP中,很多時候,它說20行,你應該在19行

尋找如上所述我真的建議使用評論員一個代碼編輯器,語法高亮如vim,emacs,Sublime Text,Notepad ++或類似的東西。每天保存我的屁股:)。

+0

做到了!不能相信我錯過了它。謝謝! – jonjon

+0

似乎很清楚,OP想要一個數組,'$ posts [] = array(...'是正確的。 – faintsignal

+0

啊,是的,錯過了,我的錯! –

1

您錯過了第19行關於'userid => $userid和逗號的結束引用。它應該是'userid' => $userid,

+1

OP在userid之後也丟失了一個'',''。 –

+0

我知道了,忘記補充說明了(看到它,忘記了我的原始答案)。正如你所看到的我編輯它:) – cojomojo

相關問題