我的目标是收到2个字符串,一个IP和UUID,并查看数据库。如果UUID已经存在,则将IP添加到数据库中的IP列表中。如果没有,它会在数据库中使用该UUID和IP创建一个新行。目的是跟踪用户活动(没有恶意) 代码:
<?php
$cip = $_POST['ipaddr'];
$cid = $_POST['id'];
$conn = mysqli_connect('localhost', '*****', '*****', '*****');
$query = mysqli_query($conn, "SELECT * FROM sls WHERE asid='".$cid."'");
if(mysqli_num_rows($query) > 0){
$sql = "SELECT asid, ips FROM sls WHERE asid=$cid";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_assoc($result);
$cipdata = $row["ips"];
}
$sql = "UPDATE sls SET ips='$cipdata , $cip' WHERE id=2";
mysqli_query($conn, $sql);
} else {
$sql = "INSERT INTO sls (asid, ips) VALUES ('$cid', '$cip')";
mysqli_query($conn, $sql);
}
?>
现在,无论UUID如何,它都会为每个IP添加一个新行。 我做错了什么?
- 编辑:修正了拼写错误,现在它只是添加了第一个IP,但之后不再添加到该行。
答案 0 :(得分:1)
也许这一行有一个小错字:
$query = mysqli_query($con, "SELECT * FROM sls WHERE asid='".$cid."'");
你的意思是$conn
,而不是$con
?如:
$query = mysqli_query($conn, "SELECT * FROM sls WHERE asid='".$cid."'");
答案 1 :(得分:1)
您的连接参数是$ conn所以只在每个查询命令中使用它。一些你正在使用$ con和某个地方$ conn。
检查您的代码。