想要根据行数限制具有相应列名值的插入查询
Want to limit the insert query with respective column name's value according to the row count
我想根据行数限制具有相应列名值的插入查询。我想要做的是,有 5 个区域,每个区域只接受 4 个值,它将插入到数据库中。如果我在同一区域添加更多值,它必须显示警报“最大值为 4”。
if ($chk=='issue'){
$sql="SELECT count(*)
from access_request.tbl_sealcable
where seal_area='.$seal_area'";
$result= mysqli_query($conn,$sql);
if (mysqli_num_rows($result) < 5){
$barcodeArray = explode(",",$seal_barcode);
foreach($barcodeArray as $value){
$seal_barcode = $value;
$sql1 = "INSERT INTO access_request.tbl_sealcable
(seal_barcode, seal_area, dt_issue,
issue_admin, receive_by, receive_id)
VALUES ('$seal_barcode', '$seal_area', now(),
'$admin_name', '$receive_by', '$receive_id')";
$result1 = mysqli_query($conn,$sql1);
}
} else {
echo '<script language="javascript">';
echo 'alert("Limit exceeded.")';
echo '</script>';
}
A COUNT()
查询将 return 1 行 始终,即使计数为零,您正在测试行数 return在这一行
if (mysqli_num_rows($result) < 5){
当然不行,你需要从结果集中获取计数,所以
将查询更改为 COUNT(*) as cnt
然后您可以更轻松地访问结果列
获取结果集并测试cnt
的值
$row = $result->fetch_assoc();
if ($row['cnt'] >= 4) {
. . .
}
大注
您的脚本对 SQL Injection Attack 开放。
甚至 if you are escaping inputs, its not safe!
您应该始终使用 prepared parameterized statements
在 MYSQLI_
或 PDO
API 中,而不是将用户提供的值连接到查询中。永远不要相信任何用户输入!
我想根据行数限制具有相应列名值的插入查询。我想要做的是,有 5 个区域,每个区域只接受 4 个值,它将插入到数据库中。如果我在同一区域添加更多值,它必须显示警报“最大值为 4”。
if ($chk=='issue'){
$sql="SELECT count(*)
from access_request.tbl_sealcable
where seal_area='.$seal_area'";
$result= mysqli_query($conn,$sql);
if (mysqli_num_rows($result) < 5){
$barcodeArray = explode(",",$seal_barcode);
foreach($barcodeArray as $value){
$seal_barcode = $value;
$sql1 = "INSERT INTO access_request.tbl_sealcable
(seal_barcode, seal_area, dt_issue,
issue_admin, receive_by, receive_id)
VALUES ('$seal_barcode', '$seal_area', now(),
'$admin_name', '$receive_by', '$receive_id')";
$result1 = mysqli_query($conn,$sql1);
}
} else {
echo '<script language="javascript">';
echo 'alert("Limit exceeded.")';
echo '</script>';
}
A COUNT()
查询将 return 1 行 始终,即使计数为零,您正在测试行数 return在这一行
if (mysqli_num_rows($result) < 5){
当然不行,你需要从结果集中获取计数,所以
将查询更改为
COUNT(*) as cnt
然后您可以更轻松地访问结果列获取结果集并测试
的值cnt
$row = $result->fetch_assoc();
if ($row['cnt'] >= 4) {
. . .
}
大注
您的脚本对 SQL Injection Attack 开放。
甚至 if you are escaping inputs, its not safe!
您应该始终使用 prepared parameterized statements
在 MYSQLI_
或 PDO
API 中,而不是将用户提供的值连接到查询中。永远不要相信任何用户输入!