Php MySQL在插入后检查前14个字符
我正在尝试检查零件的条形码,因为存在混合的风险。条形码由24个字符组成,前14个字符是零件号,最后10个字符是计数器,检查前14个字符是一种解决方案吗 以下是条形码的示例:308739420D52AD1702600131 混合零件是因为下一个条形码来自另一个零件: 308739420B0LAD1702600131 因此,我的问题是:我可以在数据库中输入前14个字符时进行检查吗 我可以这么说,给我看看我今天用来在数据库中引入条形码的脚本:Php MySQL在插入后检查前14个字符,php,mysql,Php,Mysql,我正在尝试检查零件的条形码,因为存在混合的风险。条形码由24个字符组成,前14个字符是零件号,最后10个字符是计数器,检查前14个字符是一种解决方案吗 以下是条形码的示例:308739420D52AD1702600131 混合零件是因为下一个条形码来自另一个零件: 308739420B0LAD1702600131 因此,我的问题是:我可以在数据库中输入前14个字符时进行检查吗 我可以这么说,给我看看我今天用来在数据库中引入条形码的脚本: 使用mysqli在数据库中插入数据 条形码检查器 条
使用mysqli在数据库中插入数据
条形码检查器
条形码:
您可以使用PHP函数substr()
:
文件:
更新:扩展示例,用以下内容替换php代码中的所有内容:
<?php
if(isset($_POST["submit"])){
$servername = "localhost";
$username = "barcode";
$password = "barcode";
$dbname = "barcode";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$control = '308739420D52AD'; // YOUR BAR CODE IDENTIFIER
$test = substr($_POST["TAK0010barcode"], 0, strlen($control)); // BEGINNING OF THE POSTED BAR CODE.. SET TO SAME LENGTH AS BAR CODE IDENTIFIER
if($control == $test){ // CHECK IF STRINGS ARE ALIKE
$sql = "INSERT INTO tak0010 (TAK0010barcode)
VALUES ('".$_POST["TAK0010barcode"]."')";
if ($conn->query($sql) === TRUE) {
echo "<span style='color: green; font-size: 40px; font-weight: bold'>SUCCES!!</span>";
} else {
echo "<span style='color: red; font-size: 40px; font-weight: bold'>EROARE!!</span>";
}
$conn->close();
} else { // STRINGS DO NOT MATCH!
echo "<span style='color: red; font-size: 40px; font-weight: bold'>The barcode don't match the part number. Please use a barcode starting with ".$control."</span>";
}
}
?>
MySQL有一个substring()
函数。请在此处发布您的代码,以便为将来的so访问者保留。是否要检查前14个字符是否已存在于数据库中?如果不是,则插入,如果是,则不执行任何操作?我想检查条形码的前14个字符是否相同(308739420D52AD),因为如果您无意中在另一个零件(308739420B0LAD)上插入条形码,则存在零件混合的风险。与什么相同?与变量检查相同,或类似。因此,我希望引入的每个条形码检查条形码的前14个字符(308739420D52AD1702600131)是否与“308739420D52AD”相同。谢谢Michael K。我已插入php,我收到此错误:“解析错误:语法错误,C:\Sites\barcode\index.php第35行的意外“if”(T_-if)。我阅读了PHP手册上的和,没有找到任何帮助。在sql执行之后,您必须用}
关闭IF条件。。我的exempel只显示了代码的开头…感谢您提供完整的代码,但是脚本不起作用,我不知道问题出在哪里。。。在文本框中输入数据并按下“提交”按钮时,页面会重新加载,并且不会在数据库中插入任何内容,也不会出现错误消息。对不起,我的代码中有一个拼写错误,它应该是:substr($\u POST[“TAK0010barcode”],0,strlen($control)
其中零表示开始位置。我已相应地更新了我的答案…现在请告诉我它是否适用于您。非常感谢。脚本工作正常。谢谢。
<?php
if(isset($_POST["submit"])){
$servername = "localhost";
$username = "barcode";
$password = "barcode";
$dbname = "barcode";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$control = '308739420D52AD'; // YOUR BAR CODE IDENTIFIER
$test = substr($_POST["TAK0010barcode"], 0, strlen($control)); // BEGINNING OF THE POSTED BAR CODE.. SET TO SAME LENGTH AS BAR CODE IDENTIFIER
if($control == $test){ // CHECK IF STRINGS ARE ALIKE
$sql = "INSERT INTO tak0010 (TAK0010barcode)
VALUES ('".$_POST["TAK0010barcode"]."')";
if ($conn->query($sql) === TRUE) {
echo "<span style='color: green; font-size: 40px; font-weight: bold'>SUCCES!!</span>";
} else {
echo "<span style='color: red; font-size: 40px; font-weight: bold'>EROARE!!</span>";
}
$conn->close();
} else { // STRINGS DO NOT MATCH!
echo "<span style='color: red; font-size: 40px; font-weight: bold'>The barcode don't match the part number. Please use a barcode starting with ".$control."</span>";
}
}
?>