2014-03-25 64 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

相关问题