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连接后使用mysql_real_escape_string()和使用双引号

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

用于mysqli_query您的查询(注意i)并使用准备好的语句。使用准备好的语句比使用直接查询和在查询字符串中包含变量更安全。此外,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子句中没有 where

不应该是

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

我想你想INSERT而不是使用Update. 为什么field = field + ($userlogin)?这将连接这些值。还有一件事请使用PDOMYSQLI

使用 PDO 扩展的示例:

<?php

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

?>
于 2012-09-07T07:04:33.470 回答