Это потому, что вы на самом деле не запускаете запрос MySQL. У вас просто есть строка запроса как таковая. Вы должны передать строку mysql_query (..). Получите ресурс, а затем проверьте окончательное количество строк.
Метод № 1: (изменение вашего кода)
$id;$count;
do {
$id = mt_rand(1, 10);
$res = mysql_query("SELECT count(*) as c FROM accounts WHERE id = '$id'");
$row = mysql_fetch_array($res);
$count = $row['c'];
} while ($count != 0);
$sql = "INSERT INTO accounts ...";
//..
Метод № 2:
- Измените таблицу MySQL, используйте auto_increment. Создайте таблицу таким образом
create table myTABLE (
id integer aut_increment,
username varchar(128),
email varchar(128),
..
primary key(id)
);