Php 设置每个用户名可以选择微调器中的项目一次
我现在的情况是,每个用户名只能在spinner中选择一次项。也就是说,如果微调器有5个项目,用户可以选择所有项目,但所有项目只能选择一次。下面是我选择的php数据:Php 设置每个用户名可以选择微调器中的项目一次,php,mysql,Php,Mysql,我现在的情况是,每个用户名只能在spinner中选择一次项。也就是说,如果微调器有5个项目,用户可以选择所有项目,但所有项目只能选择一次。下面是我选择的php数据: <?php if($_SERVER['REQUEST_METHOD']=='POST'){ //Getting values $username = $_POST['username']; $name = $_POST['name']; //Creating an sql query $sql = "INSERT
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
//Getting values
$username = $_POST['username'];
$name = $_POST['name'];
//Creating an sql query
$sql = "INSERT INTO Selection (username, name) VALUES
('$username','$name')";
//Importing our db connection script
require_once('dbConnect.php');
//Executing query to database
if(mysqli_query($con,$sql)){
echo 'Select Successfully';
}else{
echo 'Sorry, You Already Select it Before';
}
//Closing the database
mysqli_close($con);
}
为什么在插入之前不测试该条目是否已在数据库中?可能这(未经测试)代码可能有帮助:
if($_SERVER['REQUEST_METHOD']=='POST')
{
//Getting values
$username = $_POST['username'];
$name = $_POST['name'];
//Importing our db connection script
require_once('dbConnect.php');
//Creating an sql query
$check_sql = "SELECT * FROM Selection WHERE username='$username' AND name='$name' LIMIT 1";
$check_res = $mysqli->query($con,$check_sql);
if($check_res && mysqli_num_rows($check_res) >0)
{
echo 'Sorry, You Already Select it Before';
}
else
{
$sql = "INSERT INTO Selection (username, name) VALUES ('$username','$name')";
if(mysqli_query($con,$sql))
{
echo 'Select Successfully';
}
else
{
echo "Select failed for some other reason";
}
}
//Closing the database
mysqli_close($con);
}
我认为,要检查用户是否只旋转一次,只需在数据库结构中添加一个标志,例如
u_id | flag |
--------------
1 | 1
--------------
因此,当检索或获取时,或者你可以说在检查时,你只需要确保这个特定的u_id已经旋转了一次,所以不能再进一步旋转
因此,在插入之前,请检查特定用户的用户名或用户id
$sql = "SELECT u_id from user_spins table where u_id = 1 AND flag = 1";
//if yes then don't allow to proceed
//if no then insert into User_spins table
$sql = "INSERT INTO User_spins (u_id, name,flag) VALUES
('$username','$name',1)";
//Importing our db connection script
require_once('dbConnect.php');
您可以为用户名和名称列指定唯一约束
使用以下代码更改选择
表:
ALTER TABLE `Selection` ADD UNIQUE `unique_index`(`username`, `name`);
现在,如果您尝试插入任何已插入的用户名和名称对,将失败。您的代码容易受到攻击。您应该通过或驱动程序将准备好的语句与绑定参数一起使用。有一些很好的例子。