0
    $user = mysql_real_escape_string($_POST["userlogin"]);

    mysql_connect("uritomyhost","myusername","password"); 
    mysql_select_db('mydatabase');
    mysql_query('UPDATE table SET field = field + ($userlogin)');

これは、投稿リクエストからユーザーログインを取得し、それを SQL クエリに挿入する正しい方法ですか?

4

7 に答える 7

5

古い関数の使用をやめ、代わりに PDO を使用してください。

$stmt = PDO::prepare('UPDATE table SET field = field + :field');
$stmt->execute(array('field' => $_POST["userlogin"]));

PDO に関する情報を読んでください。要するに、データをエスケープし、データベース間で非常に一貫性があり、一般的に簡単です。

于 2012-09-07T07:13:03.507 に答える
0

mysql_real_escape_string()mysql 接続後に使用し、二重引用符を使用 する

mysql_query("UPDATE table SET field = field + ({$userlogin})");
于 2012-09-07T06:59:13.050 に答える
0

データベースに接続した直後に mysql_real_scape_string() を使用する必要があります...
コードを次のように変更します。

mysql_connect("uritomyhost","myusername","password"); 
mysql_select_db('mydatabase');
$userlogin = mysql_real_escape_string($_POST["userlogin"]);
mysql_query("UPDATE table SET field = '$userlogin'");
于 2012-09-07T07:03:14.303 に答える
0

このようにしてみてください。

$user = mysql_real_escape_string($_POST["userlogin"]);

mysql_connect("uritomyhost","myusername","password"); 
mysql_select_db('mydatabase');
mysql_query("UPDATE table SET field = value where user='$user'");
于 2012-09-07T07:03:26.293 に答える
0

クエリに使用し( imysqli_queryに注意)、準備済みステートメントを使用します。準備されたステートメントを使用することは、単純なクエリを使用してクエリ文字列に変数を含めるよりも安全です。さらに、mysql はまもなく非推奨になります。例 :

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$city = "Amersfoort";
/* create a prepared statement */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {

/* bind parameters for markers */
$stmt->bind_param("s", $city);

/* execute query */
$stmt->execute();

/* bind result variables */
$stmt->bind_result($district);

/* fetch value */
$stmt->fetch();

printf("%s is in district %s\n", $city, $district);

/* close statement */
$stmt->close();
}
/* close connection */
$mysqli->close();
?>
于 2012-09-07T07:03:46.357 に答える
0

これを試して

mysql_query("UPDATE table SET field = field + ('$user')");

でも、

UPDATE句に場所がないため、テーブルのすべてのフィールドを更新している可能性があります

むしろそうじゃないかな

mysql_query("UPDATE table SET field = field WHERE user= '$user'");
于 2012-09-07T07:04:22.893 に答える
0

INSERT代わりに使いたいと思いますUpdate。なぜfield = field + ($userlogin)ですか?これにより、値が連結されます。もう1つ、 PDOまたはMYSQLIを使用してください

PDO 拡張機能の使用例:

<?php

    $stmt = $dbh->prepare("INSERT INTO tanlename (field) VALUES (?)");
    $stmt->bindParam(1, $user);
    $stmt->execute();

?>
于 2012-09-07T07:04:33.470 に答える