0

IDがmysqlデータベースに存在するかどうかを確認するにはどうすればよいですか。存在する場合は、新しいIDを作成して、もう一度確認してください。IDを作成するための次のコードがあります。

$length = 10;
$id = '';
for ($i = 0; $i < $length; $i++) {
    $id .= chr(rand(ord('0'), ord('9')));
}

IDが存在するかどうかを確認するには、以下のコードを使用します。

$database->query('SELECT user_id FROM users 
                  WHERE public_id = ':public_id',array(':public_id' => $public_id)');

if($database->count() >= '1') { 
//create a new id 
} else { } 
4

1 に答える 1

1

あなたがやろうとしていることは、「ベストプラクティス」とは見なされません。(理論的には) 無限ループを作成できるからです (ランダム ID を作成し、存在をチェックすると、各反復で「ヒット」する可能性があります)。

一意の ID を作成するためのより良い解決策は、列を主キーとして設定し、新しい挿入ごとにインクリメントすることです。

別の列を一意にしたい場合は、その列も一意になるように定義できますが、「ランダムな」文字列に頼る必要はありません。

于 2012-08-09T17:30:42.410 に答える