解析错误:语法错误,第43行的C:\ ... \ GuestbookPHP.php中的意外T_STRING

时间:2011-09-14 17:32:27

标签: php

我无法弄清楚为什么我的代码中出现此错误。有人能帮我解决这个问题吗?

为了让你知道,我的第43行是

  

INSERT INTO commentList

    <?php

$dbServer='localhost';
$dbUser='root';
$dbPass='password';
$dbName='Guestbook';

mysql_connect("$dbServer", "$dbUser", "$dbPass") or die(mysql_error());
mysql_select_db("$dbName") or die(mysql_error());


mysql_query("CREATE TABLE commentLlist(
    id INT NOT NULL AUTO_INCREMENT, 
      PRIMARY KEY(id),
        name VARCHAR(30), 
        comment VARCHAR(160))")
    or die(mysql_error());  


  // Retrieving data from the url
  $name = $_GET['name'];
  $comment = $_GET['comment'];


  if ( $name != null && $comment != null ) {
        INSERT INTO commentList
        VALUES("$name", "$comment");

  } else if ($name == null) {
        INSERT INTO commentList 
        VALUES("Anonymous", "$comment");

  } else if ($comment == null) {
          INSERT INTO commentList 
          VALUES("$name", " has nothing to say!");



    $display_string = "<li>";
    $display_string .= "$name";
    $display_string .= " says";
    $display_string .= "$comment";
    $display_string .= "<li>";


    echo $display_string;


?>

1 个答案:

答案 0 :(得分:3)

以下代码错误:

if ( $name != null && $comment != null ) {
    INSERT INTO commentList
    VALUES("$name", "$comment");

您要做的是将此查询发送到mysql吗?

所以你需要使用mysql_query函数。所以你应该写这样的东西:

if ( $name != null && $comment != null ) {
    mysql_query("INSERT INTO commentList VALUES('".$name."', '".$comment."')");
}

在你的最后一个声明之后,还有一个缺少大括号。


此外,将用户输入直接放入您的查询是一个非常糟糕的主意。您应该使用mysql_real_escape_string()转义参数。

if ( $name != null && $comment != null ) {
    mysql_query("INSERT INTO commentList 
        VALUES('".mysql_real_escape_string($name)."', '".mysql_real_escape_string($comment)."')");
}