我只是用一个数字更新数据库,但我只希望数字的最后一位数字实际更新。我不确定是在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>