Нет, захватить самый высокий идентификатор небезопасно, просто добавить 1 и использовать его в качестве нового идентификатора. Это то, что известно как состояние гонки. Если два запроса пытаются выполнить эту операцию одновременно, может случиться так, что оба они выберут ОДИН И ТО ЖЕ САМЫЙ самый высокий идентификатор, оба попытаются добавить 1, а затем ОБА попытаются использовать один и тот же идентификатор (что было бы неверно).
Гораздо лучше использовать поля AUTO_INCREMENT, как вы делаете, и вы можете получить вставленный идентификатор в PHP следующим образом (из http://php.net/manual/en/function.mysql-insert-id.php):
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');
mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Last inserted record has id %d\n", mysql_insert_id());
?>