是否可以更新数据库,然后在输入所有新数据后立即获取新记录集?在执行包含所有新记录的新SELECT之前,是否需要某种闭包以确保插入sql已完成?
即简单地说,如果我总共有50 000个条目,其结构如下:
$sql = "INSERT INTO `acc_change`(`ID`, `type`, `name`, `amount`, `date`, `processed`)
VALUES (NULL, 'auto', 'Lorem', '75.00', '2018-04-05 00:00:00', 'no'),
(NULL, 'auto', 'Ipsum', '12.00', '2018-04-25 00:00:00', 'no'),(NULL, 'auto', 'Dolor', '24.00', '2018-04-28 00:00:00', 'no')...
INSERT INTO `videos`(`ID`, `type`, `name`, `date`, `processed`)
VALUES (NULL, 'auto', 'Lorem', '2018-04-05 00:00:00', 'no')...
然后我能做这样的事情:
$update_sql = "SELECT * FROM `acc_change` where `date` < '2018-04-23 12:32:00'"
$sqlMsg = enterSql($update_sql);
并获取所有最近添加的记录?
重要: 通常我会:
从数据库中提取旧数据并将其保存在数组/对象中
拉出新数据并保存在数组/对象中。
过滤掉我需要的东西并制作新的数组/对象。
创建新的插入SQL语句。
我完全清楚这是解决问题的方法,但这不是我要问的问题。我问你是否/如何插入/更新,然后立即访问这些新数据。
我的数据库功能:
function db($action){
static $conn;
$servername = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "life2020";
if ($action == "use"){
if ($conn === null){
$conn = mysqli_connect($servername, $dbuser, $dbpass, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
}
return $conn;
} else {
mysqli_close($conn);
}
}
function get_db_rows($sql){
$rows = array();
$conn = db("use");
$result = mysqli_query($conn, $sql) or die("Erro!: " . mysqli_error($conn));
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$rows[] = $row;
}
}
mysqli_free_result($result);
return $rows;
}
function enterSql($sql){
$sqlMsg = "";
$conn = db("use");
if (mysqli_multi_query($conn, $sql)) {
$sqlMsg = "Entered data";
} else {
$sqlMsg = "Error updating record: " . mysqli_error($conn);
}
mysqli_close($conn);
return $sqlMsg;
}
答案 0 :(得分:-1)
SELECT * FROM table_name ORDER BY id DESC,LIMIT 2.