使用PHP存储注释

时间:2013-06-12 10:48:49

标签: php mysql

Hello Friends我写了以下代码在MySQL中插入评论(如Facebook),但我没有成功。请帮帮我。

这是html页面

    <html>
<head><title>ABC</title>
    </head>
    <body>
        <form method="GET" action="try1.php">
    <input type="text" name="like">
    <input type="submit" name="Comment" value="dislike">    
</form>
</body>

现在这里是php代码

    <html>
<head><title> </title>
    </head>
    <body>


    <?

//connecting to database

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root';

$conn = mysql_connect($dbhost, $dbuser, $dbpass);

if(!$conn )
{
  die('Could not connect: ' . mysql_error());
}
  mysql_select_db("try", $conn);
    $a= array('comments' =>'$_GET["like"]');

  mysql_query("INSERT INTO try1 (Comments) VALUES ('$a')",$conn);
  echo "Record Inserted in table";
mysql_close($conn);
?>
</body>

MySQL只显示'数组'。它只是将'Array'存储在MySQL Field中 请帮帮我!

3 个答案:

答案 0 :(得分:2)

您的问题

您正尝试在查询中插入数组!

您需要从数组中提取值。您可以遍历数组(这将允许多个值),或者您可以提取单个值。

以下示例遍历您的数组并构建查询:

foreach($array as $column => $value){
    // Append the columns string with the column name
    $columns .= "`$column`,";
    // Escape and append the values string
    $values .= "'".mysql_real_escape_string($value)."',";
}

// Remove the trailing commas
rtrim($columns, ",");
rtrim($values, ",");

$SQL = "INSERT INTO try1 ($columns) VALUES ($values)";

mysql_query($SQL,$conn);

或者,您可以像这样提取和转义数组值

mysql_query("INSERT INTO try1 (count) VALUES ('".mysql_real_escape_string($a['comments'])."')",$conn);

一些建议

请不要使用现已弃用的mysql_*个功能!见here。您应该使用PDO或Mysqli。

请参阅以下参考资料:

  1. Mysqli
  2. PDO

答案 1 :(得分:0)

你不能这样做:

 $a= array('comments' =>'$_GET["like"]');

  mysql_query("INSERT INTO try1 (Comments) VALUES ('$a')",$conn); 

因为$a不是字符串,所以当你将它包含在字符串参数中时,它只是输出为“数组”,这就是为什么你在数据库中看到数组。

这样可行

mysql_query("INSERT INTO try1 (Comments) VALUES ('{$a['comments']}')",$conn);

但是,我强烈建议在问题的评论中听取意见。尽管对于学习练习很有用,但您可能需要考虑使用像phpigniter或cakephp这样的php web框架

答案 2 :(得分:0)

替换

$a= array('comments' =>'$_GET["like"]');
mysql_query("INSERT INTO try1 (count) VALUES ('$a')",$conn);

用这个:

$a= array('comments' =>$_GET["like"]);
mysql_query("INSERT INTO try1 (count) VALUES ('".mysql_real_escape_string($a['comments'])."')",$conn);