我有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
谢谢
答案 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