我正在尝试在HTML表单中创建一个简单的upvote按钮,该按钮使用PHP来更新MySQL数据库。我知道Ajax等有更好的实现,但我希望只使用简单的HTML和PHP。
我已经能够使用input type="number"
表单元素更新数据库,但在尝试使用input type="submit"
将其更改为value=1
时无法更新。
HTML
<form action="send_formdata.php" method="POST">
<label>Digs</label>
<input type="submit" name="digs" id="digs" value=1>
</form>
PHP(在send_formdata.php中)
<?php
$link = mysqli_connect("mysql.XXXXXX.com","XXXXX","XXXX","XXXXXX") or die("failed to connect to server !!");
mysqli_select_db($link,"XXXXXX");
if(isset($_REQUEST['submit'])){
$errorMessage = "";
$digs=$_POST['digs'];
if ($errorMessage != "" ) {
echo "<p class='message'>" .$errorMessage. "</p>" ;
}else{
$insqDbtb="UPDATE `XXXXXXXX`.`coffee`
SET digs = digs + '$digs'
WHERE name = 'Africa'";
mysqli_query($link,$insqDbtb) or die(mysqli_error($link));
}
}
?>
MySQL数据库信息:
表名coffee
Column Type
id int(10) unsigned Auto Increment
name varchar(255)
roaster varchar(255)
digs int(10) unsigned
答案 0 :(得分:1)
社区维基,因为问题已在评论中得到解答。
您说input type="number"
时代码有效。我怀疑你很可能有一个name="submit"
的提交按钮,你以后会删除它。
因此,此声明始终为false。
if(isset($_REQUEST['submit'])){
这是因为您的提交按钮有name="digs"
。因此,当您提交时,没有$_REQUEST['submit']
。相反,会有$_REQUEST['digs']
。
mysqli
with prepared statements或PDO with prepared statements,它们更安全。