-2

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は「配列」を表示しているだけです。MySQLフィールドに「配列」を格納するだけです助けてください!

4

3 に答える 3

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_*非推奨になった関数の使用は控えてください。ここを参照してください。PDO または Mysqli のいずれかを使用する必要があります。

次の参考文献を参照してください。

  1. Mysqli
  2. PDO
于 2013-06-12T10:58:14.583 に答える
0

あなたはこれを行うことができません:

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

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

as$aは文字列ではないため、文字列引数に含めると、単純に「配列」として出力されるため、データベースに配列が表示されます。

これはうまくいくでしょう

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

ただし、質問のコメントでアドバイスを聞くことを強くお勧めします。学習の演習には役立ちますが、codeigniter や cakephp などの php Web フレームワークの使用を検討することをお勧めします。

于 2013-06-12T10:57:23.853 に答える
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);
于 2013-06-12T11:00:40.167 に答える