а по ходу нельзя из elf64 вызывать системные вызовы через int 0x80. Так что либо замени int 0x80 на syscall (и, кстати, _NR_exit для x86_64 -- это 60), либо используй nasm -static -f elf32 и ld -m elf_i386 (и тогда _NR_setreuid будет 70).
Я бы начал с того что использовал bind переменные в проверяющих запросах:
$sth = $conn->prepare("SELECT COUNT(*) as count FROM users WHERE mail = :mail");
$sth->bindValue(":mail", $data['mail']);
$sth->execute();
if ($members = $sth->fetchColumn()) {
throw new Exception('Пользватель с таким email уже существует');
}
Зачем делать несколько запросов? Можно так:
SELECT login, mail from users WHERE mail =". $data['mail'] AND login=". $data['login'] LIMIT 1
Eсли значения есть - выводишь ошибку, а если нет - то, добавляешь пользователя.