簡體   English   中英

在一個查詢中更新兩個不同的表

[英]updating two different tables in one query

好的,所以我需要在頁面加載時更新兩個表。以下是代碼:

<?php include'connects.php';
 //Test if it is a shared client
if (!empty($_SERVER['HTTP_CLIENT_IP'])){
 $ip=$_SERVER['HTTP_CLIENT_IP'];
//Is it a proxy address
}elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$ip=$_SERVER['REMOTE_ADDR'];
}

$ip = ip2long($ip);

mysqli_query($con,"INSERT INTO visits (ip_adress) VALUES ('$ip') ON DUPLICATE KEY                                                                                 
UPDATE         visit = visit + 1");

mysqli_query($con,"UPDATE ip_visits SET total_visits = total_visits + 1");

mysqli_close($con);
?>

現在,我有第二個表需要執行與此頂部表相同的功能:

 mysqli_query($con,"INSERT INTO indVisits (ip_adress) VALUES ('$ip') ON DUPLICATE KEY  
 UPDATE visits = visits + 1");

 mysqli_query($con,"UPDATE totalVisits SET visit = visit + 1");

您可以使用mysqli multiquery: http : //php.net/manual/en/mysqli.multi-query.php

如果需要將相同的元組存儲在兩個不同的表中,則還應該考慮重新考慮數據庫的設計。

你可以做這樣的事情

mysqli_query($con,"INSERT INTO visits (ip_adress) VALUES ('$ip') ON DUPLICATE KEY                                                                                
UPDATE         visit = visit + 1; 
UPDATE ip_visits SET total_visits = total_visits + 1");

查詢字符串中的分號將結束一個查詢,並發出另一個查詢的開始信號。 您不必打2個單獨的電話,而只需打一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM