【问题标题】:MySQL update 1 row of table, previous table is being updatedMySQL 更新 1 行表,前一个表正在更新
【发布时间】:2014-04-22 06:55:06
【问题描述】:
$sql="UPDATE paper 
set 
$field='$data' 
where paper_id 
AND user_id='" . $_SESSION['edit2'] . "'";

当我更新 paper_id 2 的标题(纸表中的列)时,我遇到了一个问题; user_id 1 之前的paper_id 1; user_id 1 也正在更新。

谁能给我意见?

【问题讨论】:

  • 你在这里遗漏了一些东西where paper_id

标签: php mysql database session


【解决方案1】:

试试这个:

$sql="UPDATE paper 
set 
$field='$data' 
where paper_id =".$_REQUEST['paperid']."   /* something that comes from your Request*/
AND user_id='" . $_SESSION['
edit2'] . "'";

【讨论】:

  • 直接使用$_REQUEST值是不好的做法,首先需要清理它们以避免sql注入
  • 我遇到了这个问题解析错误:语法错误,意外'$_REQUEST'(T_VARIABLE),我将如何编辑它?
  • @Eduardo Verdugo Cáceres:感谢您的指正。
  • @user2659832 :这是您将从您的请求中得到的东西。或者您可以根据您从 SESSION 设置的一些值(例如 used_id)手动设置它。
【解决方案2】:
$sql="UPDATE paper 
SET 
$field='$data' 
WHERE paper_id = '$something'
AND user_id='" . $_SESSION['edit2'] . "'";

随意更改$something

【讨论】:

  • In addpaper:mysql_query("INSERT INTO user(username, password)VALUES('$username', '$password')", $con); $_SESSION['edit2'] = mysql_insert_id($con);在更新中:为什么它不能自动更新 paper_id 和 user_id 一起而不影响以前的表? $somethings 我不知道该放什么,因为我需要它遵循 $_SESSION['edit2']。如果我这样说,数据库也会出现问题。
【解决方案3】:
$paper_id = isset($_POST['paper_id']) ? $_POST['paper_id'] : '';

if ($paper_id)
{
 $sql="UPDATE paper 
 SET
 $field='$data' 
 WHERE paper_id = '$paper_id' 
 AND user_id='" . $_SESSION['edit2'] . "'";
}

注意: paper_id 应该从您的表单中传递。

【讨论】:

    【解决方案4】:

    $sql="更新论文集 $field='$data' where paper_id='" 。 $_SESSION['addpaper'] 。 "' AND user_id='" 。 $_SESSION['登录'] 。 "'"

    现在可以了。

    非常感谢。 开发人员, 爱德华多·维尔杜戈·卡塞雷, 伊莱什·帕特尔

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      • 2021-02-08
      • 2013-06-24
      • 1970-01-01
      相关资源
      最近更新 更多