使用PHP/My SQLi一次性验证促销代码
我对MySQLi的整个事情都很陌生。我对PHP有基本的了解。不管怎么说,我在这里到处找了找,就是找不到确切的答案 基本上,我有一个表格,一个人可以输入姓名、电子邮件和促销代码。表单会验证名称和电子邮件,但当涉及到促销代码时,我就被卡住了 我有一个有两列的数据库。一个用于代码,另一个用于“已使用”列–最终,当使用了唯一代码时,我需要能够在该列中写入“1”,以便不能再次使用。我正在尝试使用我在这里找到的一些代码,仅供参考 以下是连接到数据库后的PHP:使用PHP/My SQLi一次性验证促销代码,php,forms,mysqli,Php,Forms,Mysqli,我对MySQLi的整个事情都很陌生。我对PHP有基本的了解。不管怎么说,我在这里到处找了找,就是找不到确切的答案 基本上,我有一个表格,一个人可以输入姓名、电子邮件和促销代码。表单会验证名称和电子邮件,但当涉及到促销代码时,我就被卡住了 我有一个有两列的数据库。一个用于代码,另一个用于“已使用”列–最终,当使用了唯一代码时,我需要能够在该列中写入“1”,以便不能再次使用。我正在尝试使用我在这里找到的一些代码,仅供参考 以下是连接到数据库后的PHP: if(isset($_POST['sponso
if(isset($_POST['sponsorcode']) && !empty($_POST["sponsorcode"])){
$sponsorcode = mysqli_real_escape_string($link,$_POST['sponsorcode']);
$query = "SELECT 'sponsorcode' FROM 'teachercodes' WHERE sponsorcode = '$sponsorcode'";
$result = mysqli_query($link, $query) or die(mysqli_error($link));
$option = "";
if(mysqli_num_rows($result)>0){
while($row=mysqli_fetch_array($result)) {
$option = "<option value='{$row['codes']}'>{$row['codes']}</option>";
}
任何提示都将不胜感激!谢谢。没有理由将您的任务作为两个单独的步骤来执行。只需将赞助商代码标记为teachercodes表中使用的代码。如果更新影响了任何行,即mysqli_infected_rows返回1或更多,那么它以前从未使用过,并且是有效的发起人代码。大概是这样的:
// Make sure a sponsor code was provided
if (isset($_POST['sponsorcode']) && !empty($_POST['sponsorcode'])) {
// Escape the sponsor code to prevent SQL injection
$code = mysqli_real_escape_string($link, $_POST['sponsorcode']);
// Mark sponsor code as used if possible
$sql = 'UPDATE teachercodes SET used=1 WHERE sponsorcode="' . $code . '"';
mysqli_query($link, $sql) or die(mysqli_error($link));
if (mysqli_affected_rows($link)) {
// Sponsor code hasn't been used before and is valid
}
}
您将表和列视为值;删除引号。嗯……我想这对处理事情起到了作用,但现在我被下一步该怎么做卡住了?再一次,对于这个基本的问题,我感到抱歉,但我对这个问题还不熟悉。还是没有验证?太棒了!谢谢您: