我有以下代码,无法正常工作:
$character_set_array = array();
$character_set_array[] = array('count' => 8, 'characters' => '0123456789');
$temp_array = array();
foreach ($character_set_array as $character_set) {
for ($i = 0; $i < $character_set['count']; $i++) {
$temp_array[] = $character_set['characters'][rand(0, strlen($character_set['characters']) - 1)];
}
}
shuffle($temp_array);
$pinstart = 'AA';
$pinend = implode('', $temp_array);
$newpin = $pinstart.$pinend;
function regenerate_pin($pin)
{
if ($PIN == 'PIN') { return ''; } else {
$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 {
$sql = mysql_query("UPDATE pins SET pins='$newpin'");
return "The pin has been regened, the new pin is '.$newpin.'";
} }
}
基本上我想做到的是这样的:
-从HTML输入框获取图钉,
-检查图钉是否存在于数据库中(有效)
-如果存在,将$ pin替换为$ newpin并打印出$ newpin,这就是我的表格的样子
有关我的桌子的一些信息:
表名称=引脚引脚存储的列名为引脚
感谢您的阅读,希望我能找到一个快速的解决方案。
最佳答案
您的regenerate_pin()
函数看不到$newpin
变量,并且您的UPDATE SQL可能是错误的:
将"UPDATE pins SET pins='$newpin'"
更改为"UPDATE pins SET pin='$newpin'"
对于该功能,您有两个选择:
添加全局$ newpin;函数regenerate_pin($ pin)中的代码行
function regenerate_pin($pin)
{
global $newpin;
...
}
或将$ newpin变量作为参数发送给regenerate_pin-function。
function regenerate_pin($pin, $newpin)
{
...
}
而且你必须像这样调用regenerate_pin函数
regenerate_pin('oldpin', 'newpin');