使用更新mysql和php语法更新sql表

使用更新mysql和php语法更新sql表,php,mysql,html,Php,Mysql,Html,我正在尝试使用php和mysql中的update更新我的记录,查询工作正常,但数据库中根本没有更新,我有许多票证记录,当用户购买时,我需要更新这些记录的状态,比如说用户图书10票证我使用了这种语法 for ($counter = 1; $counter <= $tickets; $counter++) { echo $eventId; echo $chooseClass; echo $

我正在尝试使用php和mysql中的
update
更新我的记录,查询工作正常,但数据库中根本没有更新,我有许多票证记录,当用户购买时,我需要更新这些记录的状态,比如说用户图书
10
票证我使用了这种语法

     for ($counter = 1; $counter <= $tickets; $counter++) {
                echo $eventId;
                echo $chooseClass;
                echo $chooseUser;
                $bookTicket = mysql_query("UPDATE units 
SET ticketSold = 'Yes', 
userIdFK = '$chooseUser' 
WHERE BusinessreservationIdFk = '$eventId' 
AND classIDfk ='$choosedClass'"
) or die(mysql_error());

                if ($bookTicket) 
                {
                    echo "<br/>ticket " . $counter . "  done !";
                } 
                else
                {

对于($counter=1;$counter尝试单独构建查询(例如,
$sql='UPDATE…'
,因此您可以执行
echo$sql
并复制/粘贴查询并手动运行。代码中没有任何错误,因此您传递的值一定不正确或
WHERE…
逻辑不正确。因此,手动运行一个示例查询,然后查看是否发生任何情况


但是,请注意,您是在
for()
循环中执行此操作的,但没有在任何地方使用$counter值。实际上,您只是反复运行相同的查询。将
ticketSold
设置为
Yes
$counter times不会使其“更多”
比只更新一次更有效。

您的代码可能容易受到SQL注入的攻击。您确实应该使用预处理语句,将变量作为参数传递到语句中,而这些参数不会对SQL进行计算。如果您不知道我在说什么,或者如何进行更新,请阅读。@eggyal谢谢,但这是正确的只需测试一个模型:)@MarcB感谢您的回复,我如何手动运行sql语句?使用mysql监视器(又名命令提示符),或者类似于基于web的phpmyadmin。@MarcB,我在navicat mysql软件中的mysql查询上尝试了这个方法,
UPDATE units SET ticketSold='No',userIdFK='121',其中businessReservationdFk='108'和classIDfk='135';
成功了!好的,我发现其中一个变量是错误的!新手错误,谢谢你的帮助