Php PDO检查数据是否存在(如果不创建)
所以我想要的是,我想让它检查这个人是否已经使用了这个代码,如果已经使用了,那么它应该死亡,否则从Php PDO检查数据是否存在(如果不创建),php,ajax,function,pdo,Php,Ajax,Function,Pdo,所以我想要的是,我想让它检查这个人是否已经使用了这个代码,如果已经使用了,那么它应该死亡,否则从$\u POST['code']设置数据并锁定它,这样它就不能再更改了(但只能通过删除数据库中的数据) 数据库名称=用户 在用户中,我有一个使用代码的结构设置 <?php session_start(); include ('assets/includes/include.php'); if(isset($_POST['code'])) { $SQLCheckExistens = $odb -
$\u POST['code']
设置数据并锁定它,这样它就不能再更改了(但只能通过删除数据库中的数据)
数据库名称=用户
在用户中,我有一个使用代码的结构设置
<?php
session_start();
include ('assets/includes/include.php');
if(isset($_POST['code'])) {
$SQLCheckExistens = $odb -> prepare("SELECT COUNT(*) FROM `users` WHERE `code_used` = :code");
$SQLCheckExistens -> execute(array(':code' => $_POST['code']));
$countCodes = $SQLCheckExistens -> fetchColumn(0);
if($countCodes = 0) {
$SQLRedeemCode = $odb -> prepare("UPDATE `users` SET `code_used` = :code WHERE `steamid` = :SteamID");
$SQLRedeemCode -> execute(array(':code' => $_POST['code'], ':SteamID' => $_SESSION['steamid']));
die('Saved successfully!');
} else {
die('Error. You have already redeemed a code.');
}
} else {
die();
}
?>
您正试图在if语句中指定一个值,该语句将在您的情况下返回true。应该是:
if($countCodes == 0) { // UPDATE SQL ...
尝试使用MySQL返回的计数。或者,你可以使用
那么,问题在哪里呢?它不会让我只键入一次,因为您可以通过更改文本框中的代码来编辑它。键入代码后,您不能使用其他代码,因此问题无法解决。我不知道如何创建它。什么错误或什么阻止了你实现这个目标?我不知道,它不会告诉我,因为它只是更新了我数据库中的数据。所以我声明了代码:1234-它接受并写入我的数据库。但当我回到网站时,我尝试输入4534,然后它只是将1234替换为4534,这是不可能的,因为它应该只能声明一次。但它仍然不断更改值,当我输入新的“兑换代码”时,$countCodes
返回什么@MikkelBertelsenIt还不起作用$如果没有数据,countCodes应该返回=插入您键入的已赎回代码-如果它找到数据,那么它应该只显示消息:您已经赎回了代码。不要更新它。@MikkelBertelsen代码就像你说的那样。如果$countCodes=0(找到0条记录),则更新,否则出错
function getCode($UserID, $odb)
{
$SQLUserInfo = $odb -> prepare("SELECT * FROM `users` WHERE `steamid` = :SteamID");
$SQLUserInfo -> execute(array(':SteamID' => $UserID));
$UserInfo = $SQLUserInfo->fetch(PDO::FETCH_ASSOC);
return $UserInfo['code_used'];
}
if($countCodes == 0) { // UPDATE SQL ...
$SQLCheckExistens = $odb -> prepare("SELECT COUNT(*) FROM `users` WHERE `code_used` = :code");
$SQLCheckExistens -> execute(array(':code' => $_POST['code']));
$result = $SQLCheckExistens -> fetch(PDO::FETCH_NUM);
$countCodes = $result[0];