如何解决在MySQL中保持零领先
我有一个带有varchar列的表。我使用值为01、02、03、04 .... 10、11、12等的选择形式将数据存储在此列中。我的问题是,当我提交表单时,开头的“零”将被删除。如何保持前导零?
**
NB。我已经检查了其他类似的职位,但他们没有 解决我的问题。我已经尝试了var / char / text但仍然不是 因此,为什么还有其他方法可以解决这个问题,为什么我会发布这个问题。
**
<form method=post enctype="multipart/form-data">
<select name="dd">
<option selected="selected">Day</option>
<option value='01'>01</option>
<option value='02'>02</option>
<option value='03'>03</option>
<option value='04'>04</option>
<option value='05'>05</option>
<option value='06'>06</option>
<option value='07'>07</option>
<option value='08'>08</option>
<option value='09'>09</option>
<option value='10'>10</option>
<option value='11'>11</option>
</select>
<select name="mm">
<option selected="selected">Month</option>
<option value='01'>01</option>
<option value='02'>02</option>
<option value='03'>03</option>
<option value='04'>04</option>
<option value='05'>05</option>
<option value='06'>06</option>
<option value='07'>07</option>
<option value='08'>08</option>
<option value='09'>09</option>
<option value='10'>10</option>
<option value='11'>11</option>
</select>
</form>
MySQL如下;
$caption = $_POST['dd'].-$_POST['mm'];
$sql = "INSERT INTO pages SET caption = '$caption'";
解决方法
使用sprintf
设置值的格式:
$caption = sprintf("%02d-%02d",$_POST['dd'],$_POST['mm']);
这里的关键是将数据作为字符串处理,并且不要像-$_POST['mm']
那样对数据进行数学运算,0x0000000a
会将其视为数字。在数字中,总会省略前导零,因为它们始终存在。就CPU而言,10实际上类似于// Like interface
abstract class IIO
{
public virtual async Task<string> DoOperation(string Name)
{
throw new NotImplementedException(); // throwing exception
// return await Task.Run(() => { return ""; }); // or empty do
}
}
// Implementation
class IOImplementation : IIO
{
public override async Task<string> DoOperation(string Name)
{
return await await Task.Run(() =>
{
if(Name == "Spiderman")
return "ok";
return "cancel";
});
}
}
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。