在 PHP / MySql 中插入和显示条形码

我有一个扫描条形码的表格


form_insert.php


<form action="stock_insert.php" method="get">

        <input type="text" name="barcode" placeholder="Εισαγωγή BarCode"> <br>

        <input type="submit" name="SAVE" 

</form>

将其插入我的数据库


stock_insert.php


<?php

include_once  'database_connection.php';

$barcode = $_GET['barcode'];

$sql = "INSERT INTO stock(barcode) VALUES ('$barcode');";

mysqli_query($conn, $sql);

header('Location: form_insert.php?signup=success');

?>

当我扫描条形码时,我显示的数字是008576124045


但是在我的数据库中,这个数字被保存为2147483647


之后,当我想再次扫描并显示我的条形码时,如下所示:


测试.php


<script>

        $(document).ready(function(){ 

            $("#submit").click(function(){

                var barcode =  $("#kwdikos").val();

                $.post("database/ajax.php", 

                {

                    barcode: barcode ,

                    value: value

                },function(data){

                    $("#test").html(data);          

                });

           });

        });

    </script> 

        <input type="text"   id="kwdikos" placeholder="Εισαγωγή  BarCode">

        <input type="submit" id="submit" name="add" value="Προσθήκη">

阿贾克斯.php


<?php

$barcode = $_POST['barcode'];

$sql_get = "SELECT * FROM stock WHERE barcode ='$barcode' ";

$result = mysqli_query($conn, $sql_get);      

        $resultCheck = mysqli_num_rows($result);

        if ($resultCheck > 0) {

            while  ($row = mysqli_fetch_assoc($result)){

                    $name = $row['name'];

                    $color = $row['color'];

                    $kind = $row ['kind'];

                    $price = $row['price'];

            }}

$sql = "INSERT INTO receipt (barcode, name, color, kind, value , price) VALUES ('{$barcode}','{$name}','{$color}','{$kind}','{$value}' , '{$price}')";

mysqli_query($conn, $sql);

?>

当我再次扫描输入的数字(008576124045)


我的屏幕显示保存在数据库中的 RIGHT 号码(2147483647)


但是所有其他想要显示的东西都不显示!


当我不使用条形码,但在我的输入中,我用键盘写了一个数字(例如:10500),我的代码没有问题。它运行良好,数据库中的所有内容都是正确的。


慕田峪9158850
浏览 99回答 2
2回答

饮歌长啸

这是因为您将条形码另存为 DB 中的整数,并且 int 的最大范围2147483647。它不会保存任何大于此值的数字。不能使用 int,因为整数会将条形码0096234视为 96234。尝试通过键盘写入大于2147483647的数字,它不会按预期保存。更改您的数据类型,也许是 varchar

慕标5832272

但是在我的数据库中,这个数字被保存为21474836472,147,483,647 是 32 位整数的最大值。您需要更改数据库中字段的类型
打开App,查看更多内容
随时随地看视频慕课网APP