Я собираю информацию от пользователя, а затем добавляю их в таблицу.
$insert = "INSERT INTO jos_activeagents (RINGPHONE, AGENTUID, FNAME, LNAME) VALUES ('(618) 717-2054','".$result['AGTBRDIDMM']."','".$result['AGTFNAME']."','".$result['AGTLNAME']."')"; $set = mysqli_query($link,$insert);
AGENTUID
– уникальный ключ. Если пользователь пытается отправить с помощью дубликата уникального ключа, я получаю сообщение об ошибке (конечно).
Теперь, как бы я узнал, произошла ли и когда произошла ошибка, а затем вернул ответ на страницу? Я знаю mysqli_get_warnings()
, но в руководстве по PHP нет примеров.
Я также попытался AGENTUID
в таблице:
$check = "SELECT * FROM jos_activeagents WHERE AGENTUID = '".$agt."'"; $runcheck = mysqli_query($link,$check); $rescheck = mysqli_fetch_assoc($runcheck); if($rescheck != null){ echo 'This Agent ID is already enrolled.' }
Но это кажется неряшливым. Есть ли лучший способ сделать это?
Вы можете использовать mysqli_error()
чтобы узнать, произошла ли ошибка
if (mysqli_error($runcheck )) { // an error eoccurred }
В вашем конкретном примере вам лучше проверить, существует ли строка перед выполнением вставки. Ваш пример близок, но лучше использовать mysqli_num_rows()
:
$check = "SELECT * FROM jos_activeagents WHERE AGENTUID = '".$agt."'"; $runcheck = mysqli_query($link,$check); if (mysqli_num_rows($runcheck) > 0) { // username in use }