我已生成一个10位数字,在购买后将其添加到数据库中。
现在我想制作一个php页面给用户一个输入框,让他们输入10位数字,然后点击提交。单击提交后,如果使用了引脚或未使用引脚,则应返回。 (如果不可用则使用 - 如果在表中,则不使用)
我收到了以下代码:
<?php
require_once 'db.php';
function validated_pin($pin)
{
$pin = mysql_real_escape_string($pin); // SECURITY!
$result = mysql_query("SELECT pins FROM pins WHERE pin='$pin' LIMIT 1");
if (mysql_fetch_row($result)) {
return 'This pin has already been used';
} else {
return 'This pin is available for use';
}
}
echo '<html><center>
<form action="' . $_SERVER['SCRIPT_NAME'] . '" method="post">
<table style="border:0px solid black;">
<tr>
<td>PIN*:</td><td><input type="text" name="pin" value="" class="bginput"/></td>
</tr>
<tr>
<td></td><td><input type="submit" id ="submit" name="submit1" value="Check Pin>>" class="button"></td>
</tr>
</table>';
echo validated_pin($pin);
echo '</center></html>';
?>
PHPmyAdmin看起来像这样: http://gyazo.com/67c3df7171c83c677cb221c04d644ed7.png
它位于_donation和表名称
中我不知道到处都在试图寻找
当前代码将返回此错误
Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in /home/website/public_html/directory/example.php on line 8
答案 0 :(得分:0)
您的查询是 -
$result = mysql_query("SELECT pins FROM pins WHERE pin='$pin' LIMIT 1");
不应该是
$result = mysql_query("SELECT pin FROM pins WHERE pin='$pin' LIMIT 1");
pin
是列名吗?不是pins
if (mysql_fetch_row($result)) {
if(mysql_num_rows($result)>0)
return 'This pin has already been used';
else
return 'This pin is available for use';
}
答案 1 :(得分:0)
您的查询无法获取数据,导致false
返回。
首先 - 你应该抓住这个false
值,而不是假设$result
有数据。
其次 - var_dump()
您正在运行的查询,在PhpMyAdmin中运行
答案 2 :(得分:0)
这似乎解决了它:
$pin = $_POST["pin"];
function validated_pin($pin)
{
$pin = mysql_real_escape_string($pin); // SECURITY!
$result = mysql_query("SELECT pin FROM pins WHERE pin='$pin' LIMIT 1");
if(mysql_num_rows($result) == 0) {
return 'This pin has already been used';
} else {
return 'This pin is available for use';
}
}
在执行任何代码之前,仍然面临着“已经被使用过”的问题。