php-mysql:UPDATE仅在data=integer的情况下工作
我不熟悉php和mysql,所以可能我遗漏了一些显而易见的东西,但下面是: 我正在建立一个数据库来存储有库存的物品。每个项目都分配了一定数量的库存(例如5)。每个项目都显示在“我的网页”上,旁边的按钮用于手动添加或从数据库中删除库存: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
$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']}' ");