【问题标题】:Why mySQL database saves the string in small letters?为什么mySQL数据库将字符串保存为小写字母?
【发布时间】:2020-09-15 03:32:16
【问题描述】:

请帮忙 我正在尝试制作一个 html 申请表。用户可以填写表格后将其保存在 mySQL 数据库中。在 html 中,我将 text-transform: 更改为大写,当您填写表格时,您可以看到第一个字母是大写的,但在 MySQL 数据库中,这些字母变成了小写。奇怪的。

【问题讨论】:

  • 您应该从您的应用程序中添加一个简短的代码摘录,演示如何创建表单以及如何处理文本转换。我猜您的前端会在显示视图时转换视图中的文本,但会将未更改的内部组件值发送到后端。可能不是这样,但如果没有代码示例,很难判断发生了什么。

标签: java html mysql forms mysql-workbench


【解决方案1】:

你能解释一下你用大写字母保存数据吗?无论如何,如果您愿意,您可以在将其发送到 msyql 之前使用 js 创建一个函数来捕获输入的数据,这样您就可以验证数据是否没有大写。因为 css 只在像 Sepencer7593 这样的浏览器中有效

【讨论】:

    【解决方案2】:

    您需要在插入数据库时​​将值转换为大写或使用类似这样的内容:<input type="text" onkeyup="this.value = this.value.toUpperCase();">

    您仍然需要包含 CSS text-transform: uppercase,它将隐藏 JS 的迟缓行为。

    // Some Javascript to read what is typed in and show how it is converted
    
    var input  = document.getElementsByTagName('input');
    var output = document.getElementById('output');
    
    var forEachEntryIn = function (array, callback, scope) {
        for (var i = 0; i < array.length; i++) { callback.call(scope, i, array[i]); } };
    
    function outputText() {
        output.innerHTML ='';
        forEachEntryIn( input, function (idx,el,sc) { output.innerHTML += 'text ' + (idx+1) + ': ' + el.value + '<br>'; });    
    }
    
    outputText() // first run
    body,input { font-size: 1.5rem }
    .trans     { text-transform: uppercase }
    <h3>inputs</h3>
    <label>text 1</label> <input class="trans" type="text" onkeyup="outputText();"><br>
    <label>text 2</label> <input               type="text" onkeyup="this.value = this.value.toUpperCase();outputText();"><br>
    <label>text 3</label> <input class="trans" type="text" onkeyup="this.value = this.value.toUpperCase();outputText();">
    
    <h3>outputs</h3>
    <p id="output"></p>

    【讨论】:

      【解决方案3】:

      CSS text-transform 不会改变 。它会影响值在浏览器中的显示方式,但不会影响元素的实际

      为什么 MySQL 存储小写字符?因为 MySQL 正在存储 INSERT 语句提供的值。

      为什么代码为 INSERT 语句提供小写值?很可能(我们只是在这里猜测,没有看到任何代码)代码按原样从 HTML 表单中获取值并在 INSERT 语句中使用它。

      为什么我们从表单中得到一个小写的值?因为那是表单上的值。

      行为符合预期。同样,CSS 文本转换仅影响浏览器中显示的内容。它不修改值,只修改显示。

      【讨论】:

        猜你喜欢
        • 2019-06-08
        • 1970-01-01
        • 2012-07-04
        • 1970-01-01
        • 2013-06-25
        • 2020-09-21
        • 1970-01-01
        • 2017-04-10
        • 1970-01-01
        相关资源
        最近更新 更多