我正在阅读这篇论文: https : //www.iitp.ac.in/~halder/Papers/Journal/ACSS_2016_2.pdf 和第 7 页上的数据库表 (a) loginfo 和sailinfo 进行了描述。
写了一些查询
1. start;
2. Stmt = DriverManager.getConnection(” jdbc:mysql://172.16.1.16:1115/
demo”, ”scott”, ”tiger”).createStatement();
3. Resultset rs1 = Stmt.executeQuery(“SELECT eid FROM loginfo WHERE login = ' "+ slogin +" ' AND
pass = ’ ”+ spass +” ’ ” );
4. Resultset rs2 = Stmt.executeQuery(“SELECT ename FROM salinfo WHERE B sal> GP + ' "+vsal+" ' ”);
5. Resultset rs3 = Stmt.executeQuery(“SELECT ename FROM salinfo WHERE GP > ' "+ com +" ' *
’ ”+ rate +” ’ ”);
6. stop;
(b)
我想构建表 (a) 中的查询并将其转换为表 (b) 中所示的查询。
我为一个示例编写这些查询的方式如下
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "thesis";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
echo "\n";
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "<br>";
echo "<br>";
// sql input table queries
echo "Output";
//$sql="SELECT loginfo.eid FROM loginfo WHERE loginfo.login = (SELECT input.u_input_1 FROM input WHERE input.QID = 6 AND input.IID_1 = 1) AND loginfo.pass = ( //SELECT input.u_input_2 FROM input WHERE input.QID = 6 AND input.IID_2 = 2);";
$sql = "SELECT eid FROM loginfo WHERE login= (SELECT u_input_1 FROM input WHERE QID = 6 AND IID_1 = 1) AND pass = (SELECT u_input_2 FROM input WHERE QID = 6 AND IID_2 = 2) ;";
echo "<br>";
echo "<br>";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "\n \n eid: " . $row["eid"]."<br>";
}
} else {
echo "0 results";
}
echo "<br>";
echo "<br>";
// sql input table queries
echo "Output";
$sql1 = "SELECT ename FROM salinfo WHERE GP > (SELECT u_input_1 FROM
INPUT WHERE QID = 10 AND IID_1 = 1);";
echo "<br>";
echo "<br>";
$result = $conn->query($sql1);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "\n \n ename: " . $row["ename"]."<br>";
}
} else {
echo "0 results";
}
echo "<br>";
echo "<br>";
// sql input table queries
echo "Output";
$sql2 = "SELECT ename FROM salinfo WHERE B_sal > GP + (SELECT u_input_1 FROM INPUT WHERE QID = 10 AND IID_1 = 1);";
echo "<br>";
echo "<br>";
$result = $conn->query($sql2);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "\n \n ename: " . $row["ename"]."<br>";
}
} else {
echo "0 results";
}
echo "<br>";
echo "<br>";
$conn->close();
?>
我展示的这种技术称为查询重写方法。我想知道我是否想为通用查询实现它,这只是一个例子,那么有什么更好的方法来做同样的事情。请帮助我使用这种方法。