更新 mysql,但只更新数字的最后一位


Update mysql but only last digit of number

我只是用一个数字更新数据库,但我只希望数字的最后一位数字实际更新。我不确定是在PHP还是MySql中执行此操作。

代码

:(未发布完整代码,但相关)

if(isset($_POST['update'])) {
$N_Score = $_POST['N_Score'];
$A_Score = $_POST['A_Score'];
$sql = "UPDATE scores SET N_Score = $N_Score, A_Score = $A_Score";
mysql_query($sql) or die(mysql_error());
<form method = "post" action = "<?php $_PHP_SELF ?>">
<table width = "400" border =" 0" cellspacing = "1" cellpadding = "2"> 
<tr>
<td width = "10"><?php echo $N_Team; ?> Score:</td>
<td><input name = "N_Score" type = "text" id = "N_Score" value="<?php echo $N_Score; ?>"></td>
</tr>
<tr>
<td width = "10"><?php echo $A_Team; ?> Score:</td>
<td><input name = "A_Score" type = "text" id = "A_Score" value="<?php echo $A_Score; ?>"></td>
</tr>

因此,在表单中,我输入N_Team的分数,并像这样A_Team

N_Team: 21 & A_Team: 34

我只希望最后一个数字实际进入 sql 字符串的更新,所以在数据库中它看起来像这样:

N_Team: 1 & A_Team: 4

尝试:

$N_Score = substr($_POST['N_Score'], -1);
$A_Score = substr($_POST['A_Score'], -1);

这假设值的长度为非零,您可能需要一些错误处理。

您可能还需要考虑保护自己免受 SQL 注入的影响。

这将返回字符串的最后一个字符。

$N_Score = substr($_POST['N_Score'], -1);
$A_Score = substr($_POST['A_Score'], -1);

也许您可以通过转义用户输入来保护系统的完整性:

$N_Score = mysql_real_escape_string(substr($_POST['N_Score'], -1));
$A_Score = mysql_real_escape_string(substr($_POST['A_Score'], -1));

您可能还想从 mysql_* 切换到 mysqli_* ,这是改进的,使用起来更好。

请记住,如果字符串的大小为 0,则代码将抛出"位置 -1 处没有值"或其他错误。

因此,最好在添加到数据库之前检查字符串是否包含某些内容。

像这样:

if ($_POST['N_Score'] != "" and $_POST['A_Score'] != "")
{
    $N_Score = mysql_real_escape_string(substr($_POST['N_Score'], -1));
    $A_Score = mysql_real_escape_string(substr($_POST['A_Score'], -1));
}
if(isset($_POST['update'])) {
$N_Score = substr($_POST['N_Score'], -1);
$A_Score = substr($_POST['A_Score'], -1);
$sql = "UPDATE scores SET N_Score = $N_Score, A_Score = $A_Score";
mysql_query($sql) or die(mysql_error());
<form method = "post" action = "<?php $_PHP_SELF ?>">
<table width = "400" border =" 0" cellspacing = "1" cellpadding = "2"> 
<tr>
   <td width = "10"><?php echo $N_Team; ?> Score:</td>
   <td><input name = "N_Score" type = "text" id = "N_Score" value="<?php echo $N_Score; ?>"></td>
</tr>
<tr>
   <td width = "10"><?php echo $A_Team; ?> Score:</td>
   <td><input name = "A_Score" type = "text" id = "A_Score" value="<?php echo $A_Score; ?>"></td>
</tr>