У меня есть кнопка формы, которую мне нужно сделать двумя разными способами, исходя из ввода пользователя и того, существует ли этот вход в моей базе данных. Если вход НЕ существует, кнопка создаст новую запись. Если он существует, то существующая запись будет обновлена.PHPMySQL: как определить, существует ли значение в базе данных
Вот мой PDO запрос, как она стоит сейчас:
/* First, we need to discover whether the Proposal No. entered already exists in the
database. If it doesn't, then a new record will be created. If
it does, then an existing record will be updated. */
$pNoExists = $con->prepare("SELECT ProposalNo FROM ptfp1");
$pNoExists->execute();
$row = $pNoExists->fetch(PDO::FETCH_ASSOC);
Когда я запускаю $ строки = $ pNoExists-> выборки (PDO :: FETCH_ASSOC); через цикл while все значения для поля присутствуют. Теперь мне просто нужно руководствоваться тем, как использовать это при настройке кнопок. Это то, что я хочу сделать:
if($_POST['ButtonPush'] && input doesn't exist) {
Create new record;
}
else {
Update existing record;
}
Простой, не так ли? Но это ускользает от меня.
Наличие предложения WHERE в вашем SQL-выражении может помочь, а не извлекать каждое отдельное предложение, а затем зацикливать на PHP: позволить базе данных делать то, что она разработала, чтобы сделать хорошо –
вы можете использовать '$ count = mysqli_num_rows ($ con," SELECT * FROM table WHERE ProposalNo = '$ value' ");' Если '$ count' больше 1, обновите существующий. – Jacques
Почему бы вам просто не использовать 'INSERT' с предложением' ON DUPLICATE KEY UPDATE', чтобы сделать это за один шаг? – Barmar