php-mysql:UPDATE仅在data=integer的情况下工作

php-mysql:UPDATE仅在data=integer的情况下工作,php,mysql,integer,Php,Mysql,Integer,我不熟悉php和mysql,所以可能我遗漏了一些显而易见的东西,但下面是: 我正在建立一个数据库来存储有库存的物品。每个项目都分配了一定数量的库存(例如5)。每个项目都显示在“我的网页”上,旁边的按钮用于手动添加或从数据库中删除库存: $query = "SELECT * FROM classes"; // This uses a mysql function that act upon our $query variable above $result = mysql_query

我不熟悉php和mysql,所以可能我遗漏了一些显而易见的东西,但下面是:

我正在建立一个数据库来存储有库存的物品。每个项目都分配了一定数量的库存(例如5)。每个项目都显示在“我的网页”上,旁边的按钮用于手动添加或从数据库中删除库存:

  $query = "SELECT * FROM classes";

// This uses a mysql function that act upon our $query variable above
    $result = mysql_query($query);

// This is a loop that says "while there is data to display...keep looping round and displaying that data".
    while($class_data = mysql_fetch_array($result)) {

// Now we are going to echo that data
        echo 
        "<div class=\"classmanagertablecontent\">" . $class_data['name'] . "</div>
        <div class=\"classmanagertablecontent\">" . $date['date'] . "</div>
        <div class=\"classmanagertablecontent\">" . $class_data['stock'] . "</div>
        <div class=\"classmanagertablecontent\">" . $class_data['button_paypal'] . "</div>";

        <form action="../url.php" method="post">
            <input type="hidden" name="button_paypal_fromform" value="<?php echo $class_data['button_paypal'] ?>">
            <input type="submit" value="remove stock" name="remove stock">
        </form>

        <form action="../url.php" method="post">
            <input type="hidden" name="button_paypal_fromform" value="<?php echo $class_data['button_paypal'] ?>">
            <input type="submit" value="add to stock" name="add to stock" >
        </form>
        </div>
    }
…在我的url.php页面上,该按钮显示良好(例如SD76S9SFGV)

在我的数据库中,“button_paypal”是一个文本字段,但我也尝试了VARCHAR。股票是整数


如果有人能帮忙,我将非常感激。谢谢#hopethismakessense

您只需将字符串值用单引号括起来:

<?php 

    mysql_query(    "UPDATE classes SET stock = stock+1 
                    WHERE button_paypal = '{$_POST['button_paypal_fromform']}' ");

简而言之,您需要将SQL语句中用作值的字符串用引号括起来。较长的答案是,您应该使用PDO或mysqli,并使用预处理语句和绑定语句将变量添加到查询中,因为这样更安全,完全避免了此类问题。谢谢您的回答。你能给我一个例子,把语句中的值用引号括起来吗?好的,你的意思是这样的单引号-“$button\u paypal。”“非常感谢。我已经在这里坐了一个多小时了,想解决这个问题!干杯。类似于更新表集合字段=1,其中value='Something'。任何字符串值都应该用单引号括起来,您还应该用反勾号括起表名和列名(我没有这样做,因为反勾号会将此处的文本转换为
code
。正如我所说的,请查看PDO或mysqli,否则您的网站就很容易被利用。
echo "$button_paypal";
<?php 

    mysql_query(    "UPDATE classes SET stock = stock+1 
                    WHERE button_paypal = '{$_POST['button_paypal_fromform']}' ");