Ibrahim Hassan 1234 Ответов: 2

Я хочу обновить одну запись


$sql = ("UPDATE member_registration SET fname=:fname,oname=:oname,mname=:mname,gfname=:gfname,gmname=:gmname,rank=:rank,state=:state,village=:village,lga=:lga,workingp=:workingp,dob=:dob;,ocupation=:ocupation,family_group=:family_group,nowives=:nowives,nochild=:nochild,gender=:gender,mstatus=:mstatus,cadres=:cadres,passport=:passport, where phn=$phn");
$stmt = $con->prepare($sql);
$stmt->bindParam('ocupation',$ocupation);
$stmt->bindParam('fname',$fname);
$stmt->bindParam('oname',$oname);
$stmt->bindParam('mname',$mname);
$stmt->bindParam('gfname',$gfname);
$stmt->bindParam('dob',$dob);
$stmt->bindParam('mstatus',$mstatus);
$stmt->bindParam('gender',$gender);
$stmt->bindParam('gmname',$gmname);
$stmt->bindParam('village',$village);
$stmt->bindParam('state',$state);
$stmt->bindParam('lga',$lga);
$stmt->bindParam('family_group',$family_group);
$stmt->bindParam('nowives',$nowives);
$stmt->bindParam('nochild',$nochild);
$stmt->bindParam('cadres',$cadres);
$stmt->bindParam('rank',$rank);
$stmt->bindParam('workingp',$workingp);
$stmt->bindParam('passport',$ppt);
$stmt->execute();
echo "alert('Update Succesfully');";
echo "window.location='report.php';";


Что я уже пробовал:

Я пытаюсь обновить одну запись, но все записи обновляются одновременно.

Sandeep Mewara

Что происходит, когда вы запускаете этот запрос вручную?
"Обновить набор member_registration fname=:fname,oname=:oname,mname=:mname,gfname=:gfname,gmname=:gmname,rank=:rank,state=:state,village=:village,lga=:lga,workingp=:workingp,dob=:dob;,ocupation=:ocupation,family_group=:family_group,nowives=:nowives,nochild=:nochild,gender=:gender,mstatus=:mstatus,cadres=:cadres,passport=:passport, где phn=$phn"

Richard MacCutchan

Где находится привязка для $phn?

2 Ответов

Рейтинг:
17

W∴ Balboos, GHB

Есть техника, которую вы должны использовать в этом типе вещей - предполагая, что вы знаете, как писать SQL-запросы:

1 - Создайте запрос SELECT и посмотрите, что он найдет.
2 - Измените SELECT до тех пор, пока он не будет вести себя так, как вы хотите
3 - Изменение запроса на выборку для обновления или удаления (и т. д.) используя те же критерии

Это встроенная система безопасности ... вы не можете отменить изменения.

Теперь - для таргетинга на одну запись - вам нужно сделать (1) и (2) выше, чтобы вы могли сделать таргетинг. Если данные не позволяют вам самостоятельно различать записи (а вы никогда не должны полагаться на это!), вы можете ввести поле идентификации, которое гарантирует, что каждая запись уникальна. У вас всегда есть по крайней мере одно поле, чтобы выделить запись.

Теперь имейте в виду, что вышеизложенное все еще нуждается в некотором размышлении с вашей стороны - они обычно полезны, но в любое время ваши проблемы с использованием методов могут потребовать некоторой адаптации - особенно потому, что выбор данных имеет все более сложные зависимости от других таблиц (например).

Но 1/2/3-это отличная система безопасности, и ее всегда следует использовать в живых (производственных) базах данных.


Ibrahim Hassan 1234

Я действительно терка полная для вашего быстрого ответа, и проблемы были исправлены большое вам спасибо.

Рейтинг:
11

Patrice T

Прежде всего , я вижу очевидные синтаксические ошибки, которые нужно устранить.

$sql = ("UPDATE member_registration SET ... dob=:dob; ... passport=:passport, where phn=$phn");
//                                 remove semi here ^     remove comma here ^

Существуют онлайн-инструменты, которые помогут вам проверить синтаксические ошибки sql


Ibrahim Hassan 1234

Я действительно очень нежелателен, сэр, и все, что я исправляю, все проблемы и все знают, что работает идеально, спасибо Вам большое Огер "Патрис Т".