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中 请帮帮我!
答案 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 :(得分: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);