php - MySQL查询和PHP输入之间的比较
问题描述
我有一个表格和 2 个输入字段,一个用于 ID,一个用于信息,当我存储一个值时,我需要检查 ID 是否存在于表 num 1 中,如果存在,则将信息存储在表 num 2 中'不存在然后说这是一个无效的 ID,这是我的代码。
Ps ID 已存在于另一个表中,我想将信息存储在另一个表中,如果第二个条件不存在并且在数据库中它会通过自动检查 id 是否存在,但我想在这里检查我是否写无效。
<?php
if (isset($_POST['submitInfo'])) {
require 'dbh.php';
$ID = $_POST['ID'];
$Info = $_POST['DataInfo'];
$check = "SELECT ID FROM info";
$cresult = mysqli_query($conn, $check);
$cresult1 = mysqli_store_result($cresult);
if (!preg_match("/^[0-9]*$/", $ID)) {
header("Location: ../Data.php?error=invalidID");
exit();
} else if (mysqli_num_rows($cresult1) == 0 ) {
header("Location: ../Data.php?error=invalidID2");
exit();
} else {
$sql = "INSERT into datainfo (ID,Information) values (?,?)";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
header("Location: ../Data.php?error=sqlerror");
exit();
} else {
mysqli_stmt_bind_param($stmt, "is", $ID, $Info);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
header("Location: ../Data.php?signup=success");
exit();
}
}
}
解决方案
我修好了它 :)
<?php
if (isset($_POST['submitInfo'])) {
require 'dbh.php';
$ID = $_POST['ID'];
$Info = $_POST['DataInfo'];
if (empty($ID) || empty($Info)) {
header("Location: ../Data.php?error=emptyFields");
exit();
} else if (!preg_match("/^[a-zA-Z0-9- ]*$/", $Info)) {
header("Location: ../Data.php?error=invalidChar");
exit();
} else if (!preg_match("/^[0-9]*$/", $ID)) {
header("Location: ../Data.php?error=invalidID");
exit();
} else {
$sql = "select ID from info where ID=?";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
header("Location: ../Data.php?error=sqlerror");
exit();
} else {
mysqli_stmt_bind_param($stmt, "i", $ID);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
$resultCheck = mysqli_stmt_num_rows($stmt);
if ($resultCheck > 0) {
$sql = "insert into datainfo (ID,Information) values (?,?);";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
header("Location: ../Data.php?error=sqlerror");
exit();
} else {
mysqli_stmt_bind_param($stmt, "is", $ID, $Info);
mysqli_stmt_execute($stmt);
header("Location: ../Data.php?signUp=success");
exit();
}
} else {
header("Location: ../Data.php?error=thisIDdoesntExist");
}
}
}
}
推荐阅读
- r - 为什么我无法在 R 中得到正确的 knn 测试结果?
- c++ - 如何将成员函数传递给另一个类的成员函数
- java - Spring Boot:考虑在配置中定义一个名为“entityManagerFactory”的bean
- javascript - 按日期 ImmutableJS 和 Moment() 排序
- python - Python删除空键和空键不会影响我的对象
- python - OpenCV 3.4.1 错误 readNetFromTensorflow Can't open .pb in cv::dnn::ReadProtoFromBinaryFile
- wpf - 如何连接 WPF 和 WebAPI
- kubernetes - Kubernetes可以管理硬件设备吗?
- python - 模板不存在错误...在运行 manage.py 时出现 Django 错误
- python - 在 Python 3 中迭代图像的问题