我的桌子就像这样
maklumatakaun | detailakaun
----------------------------------
id(A.I) | idDetail(A.I)
NoAkaun | KodLokasi
KodBahagian | NoTelefon
KodKategori | KodJenisAkaun
KodKategori | id
Tarif |
我正试图在detailakaun中同时更新两个表中的数据(maklumatakaun,detailakaun)有一个列'KodLokasi''KodJenisAkaun'和'NoTelefon',可能在一个id下有多个数据条目。这是我到目前为止所得到的
提取($ _POST);
if($ _POST){
$NoAkaun = isset($_POST['NoAkaun']) ? $_POST['NoAkaun'] : '';
$KodBahagian = isset($_POST['KodBahagian']) ? $_POST['KodBahagian'] : '';
$Tarif = isset($_POST['Tarif']) ? $_POST['Tarif'] : '';
$KodDaerah = isset($_POST['KodDaerah']) ? $_POST['KodDaerah'] : '';
$KodKategori = isset($_POST['KodKategori']) ? $_POST['KodKategori'] : '';
$NoTelefon = isset($_POST['NoTelefon']) ? $_POST['NoTelefon'] : '';
$KodLokasi = isset($_POST['KodLokasi']) ? $_POST['KodLokasi'] : '';
$KodJenisAkaun = isset($_POST['KodJenisAkaun']) ? $_POST['KodJenisAkaun'] : '';
$akaun_id = isset($_POST['akaun_id']) ? $_POST['akaun_id'] : '';
$sql = mysql_query("UPDATE maklumatakaun
SET NoAkaun = '$NoAkaun' ,
KodBahagian = '$KodBahagian' ,
KodDaerah = '$KodDaerah' ,
KodKategori = '$KodKategori' ,
Tarif = '$Tarif' ,
WHERE id = '$id'");
$akaun_id = mysql_insert_id();
foreach ($NoTelefon AS $i => $telefon){
$sql= mysql_query ("UPDATE detailakaun
SET KodJenisAkaun = '$KodJenisAkaun[$i]' ,
KodLokasi = '$KodLokasi[$i]' ,
NoTelefon = '$telefon'
");
此代码将更新两个表中的所有列,但是假设有一个帐户已经注册了3'KodLokasi','KodJenisAkaun'和'NoTelefon',那么当更新时只有3列中的一列会重复到3.如何正确更新?
答案 0 :(得分:0)
如何正确更新?
使用 mysqli 或 PDO 而不是弃用的mysql界面。
不要在帖子中覆盖变量的值,并且无意义地调用一个在被调用的地方无效的函数。
在WHERE
语句中使用UPDATE
子句来标识您需要更新的行。或者,如果两个表通过某些列相关联,请使用连接操作来标识行。
对于所有在这个世界上美好而美好的事物的爱...停止编写易受SQL注入攻击的代码。停下来。将预备语句与绑定占位符一起使用。如果您坚持使用不支持预准备语句的接口,那么请正确转义SQL文本中包含的不安全值。
如何正确更新它。