PHP:
function generate_uid() {
$uid = mt_rand();
$sql = "SELECT user_id
FROM user_registration";
if (!mysql_query($sql,$con)) {
die('Error: ' . mysql_error());
}
$result = mysql_query($sql);
$availability = TRUE;
while($row = mysql_fetch_array($result)) {
if($row['user_id'] == $uid) {
$availability = FALSE;
}
}
if($availability == FALSE) {
generate_uid();
}
}
Run Code Online (Sandbox Code Playgroud)
警告:mysql_query():提供的参数不是E:\ Web Design EC\register2.php第8行的有效MySQL-Link资源错误:
但是当我像普通的php一样执行这个函数时,没有错误,并且生成了$ uid.可能是什么问题?
Tat*_*nen 10
$con未在当前变量范围中定义.您可以将连接作为参数传递给函数:
function generate_uid($con) {
...
mysql_query($sql, $con);
}
$uid = generate_uid($con);
Run Code Online (Sandbox Code Playgroud)
或者您可以使用global:
function generate_uid() {
global $con;
...
mysql_query($sql, $con);
}
$uid = generate_uid();
Run Code Online (Sandbox Code Playgroud)
或者,只需将连接变量保留,并使用最后打开的连接:
function generate_uid() {
...
mysql_query($sql);
}
$uid = generate_uid();
Run Code Online (Sandbox Code Playgroud)
所有这些都应该奏效.
要了解有关变量范围的更多信息,请查看有关该主题的PHP手册: