나는 authCode(); 가장 효율적인 방법으로 다시 호출되지 않습니다. "DB 연결을 많이 쌓을 것이므로 리소스를 비싸게 빨리 열고 닫을 수 있습니다." 이없는 경우 (연결이 여전히 열려 다시 전화를 의미재귀 함수를 다시 호출하는 가장 적합한 방법은 무엇입니까?
function authCode() {
$num1 = mt_rand(1, 2147483647);
$num2 = mt_rand(1, 2147483647);
$authcode = dechex($num1).dechex($num2);;
include("../db/71cfde725dc86.php");
$conn = mysql_connect($db_host, $db_uname, $db_pword) or die("Couldn't connect because ".mysql_error()); mysql_select_db($db_name);
$query = "SELECT COUNT(*) FROM records WHERE valcode='$authcode'";
$result = mysql_query($query) or die("SELECT query failed due to ".mysql_error());
$count = mysql_fetch_assoc($result);
$row = $count['COUNT(*)'];
if($row > 0)
{
$authcode = authCode();
}
else
{
$query2 = "INSERT INTO records (valcode) VALUES ('$authcode')";
$result2 = mysql_query($query2) or die("INSERT query failed due to ".mysql_error());
}
mysql_close($conn);
return $authcode;
}
authCode();
내가 $authcode = authCode();
에 집중하고있어 데이터베이스 연결이 끝날 때까지 폐쇄되지 않는다는 사실, 다음은
$row
이 할당 된 후 연결을 닫은 다음 else 문을 다시 열고 닫아야합니까?
고맙습니다. md5 해시를 사용하도록 전환하겠습니다. 단지 그들을 사용하는 방법에 대해 배웠습니다 :). – Fireworksable