使用MySQL + PHP更新多个变量

时间:2011-02-01 16:55:27

标签: php mysql sql database sql-update

我有2个包含一串文字的变量。我需要在表格中更新它们,但是在我尝试过的大约5种不同脚本的20 +不同变体中,它只是不更新​​!

我可以使用此更新:

mysql_query("UPDATE cart SET quantity = $q WHERE sessionid='" .session_id(). "' AND description = '$d'") or die(mysql_error());

我现在正在处理不同的页面,我需要稍微不同的更新查询。这是:

UPDATE cart SET quantity = $q WHERE sessionid = $somethin AND description = $desc

为此,我有:

mysql_query("UPDATE cart SET quantity = $q WHERE sessionid = $o AND description = $d") or die(mysql_error());

(对于上述查询,我​​在不同的地方尝试了不同引号的许多变体,但没有任何效果!)

我也尝试过:

$conn = mysql_connect("my01..com", "dbase", "2354ret345ert");
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
$sql = 'UPDATE cart
        SET quantity="'.$q.'"
        WHERE sessionid="$o" AND description = "$d"';

mysql_select_db('mysql_94569_dbase');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
mysql_close($conn);  

最后一个没有显示任何错误,事实上,它甚至告诉我它已经成功更新!但它在说谎。它没有更新任何内容。

有人可以帮助我在这里,我真的厌倦了阅读教程后的turorial,从来没有学过任何东西,因为他们都有不同的语法,似乎没有任何工作。

我想做的是:

UPDATE table SET columnname = $this WHERE thiscolumn = $this AND thiscolumn = $that

$this = $var

谢谢

3 个答案:

答案 0 :(得分:5)

您缺少说明和SessionID中的引号,请执行以下操作:

 mysql_query("UPDATE cart
              SET quantity = '".$q."'
              WHERE sessionid = '".$o."' AND description = '".$d."'");

答案 1 :(得分:0)

为了避免混淆,我建议开始使用连接运算符(例如'UPDATE'。$ table。'SET ...')而不是直接将变量写入字符串(例如“UPDATE $ table SET .. “)。 在这种情况下,您的查询将如下所示:

mysql_query("UPDATE cart SET quantity = ".$q." WHERE sessionid='" .session_id(). "' AND description = '".$d."'") or die(mysql_error());

这可能会帮助您更快地找到引号和括号问题

答案 2 :(得分:0)

BAD: 我在php中有这个查询:

$query = "UPDATE users SET username = ".$nume." WHERE id = ".$userID;

这就是这个SQL:

UPDATE users SET username = elev WHERE id = 2

GOOD:为了它的工作,我把它改成了这个php:

$query = "UPDATE users SET username = ".'"'.$nume.'"'." WHERE id = ".$userID;

这就是这个SQL:

UPDATE users SET username = "elev" WHERE id = 2