Jika jadual tidak wujud, masukkan ke dalam jadual
P粉546138344
2023-09-05 15:53:43
<p>Saya mempunyai aplikasi yang membolehkan pengguna menambah nombor siri (unit) pada litar. Saya cuba mengubah suai pertanyaan sisipan untuk dua jadual untuk menyemak sama ada ID sel sudah wujud. Kalau tak ada nak selit tapi kalau ada tak nak selit rekod baru. Saya telah mencari dan cuba menggunakan jawapan yang saya temui di SO berkaitan dengan ini tanpa sebarang kejayaan.</p>
<p>这是我的代码,以
控制器</p>
<pre class="brush:php;toolbar:false;">public function AddNewCell()
{
jika ($_SERVER['REQUEST_METHOD'] == 'POST') {
$circuitId = $_POST["circuitId"];
$cellNum = filter_var($_POST["cellNum"], FILTER_SANITIZE_STRING);
$toteId = $_POST["toteId"];
$posId = $_POST["posId"];
$stageCheckId = $this->GetStageIdByBatId($cellNum);
jika (kosong ($stageCheckId)) {
echo json_encode("0");
} lain {
$cellId = $this->form->InsertNewCell($circuitId, $stageCheckId, $toteId, $posId);
$this->wk->InsertCell($circuitId, $cellId, $cellNum, $toteId, $posId);
echo json_encode($cellId);
}
}
}</pre>
<p>编队模型</p>
<pre class="brush:php;toolbar:false;">public function InsertNewCell($circuitId, $stageCheckId, $toteId, $posId)
{
$this->db->query("MASUKKAN KE DALAM tbl_Cell_Tote_Track (Circuit_Id, Stage_Check_Id, Tote_Id, Position_Id) NILAI (:cid, :scid, :tid, :pid)");
$this->db->bind(":cid", $circuitId);
$this->db->bind(":scid", $stageCheckId);
$this->db->bind(":tid", $toteId);
$this->db->bind(":pid", $posId);
$this->db->execute();
$this->db->query("PILIH ATAS(1) Cell_Id DARIPADA tbl_Cell_Tote_Track ORDER BY Cell_Id DESC");
pulangkan $this->db->single()->Cell_Id;
}</pra>
<p>工作表模型</p>
<pre class="brush:php;toolbar:false;">public function InsertCell($circuitId, $cellId, $cellNum, $toteId, $posId)
{
$this->db->query("PILIH Nombor_Litar DARI tbl_Circuit_Track WHERE Circuit_Id = :cid");
$this->db->bind(":cid", $circuitId);
$circuitNum = $this->db->single()->Circuit_Num;
$position = $this->GetCellPos($toteId, $posId);
$this->db->query("INSERT INTO tbl_OCV_Worksheet (Cell_Id, Circuit_Id, Circuit_Num, Position_Num, Serial_Num) VALUES (:clid, :cirid, :cn, :pn,:cnum)"
$this->db->bind(":clid", $cellId);
$this->db->bind(":cirid", $circuitId);
$this->db->bind(":cn", $circuitNum);
$this->db->bind(":pn", $position);
$this->db->bind(":cnum", $cellNum);
$this->db->execute();
}</pre>
<p>我尝试通过添加在表的 Cell_Id 列上添加唯一约束
<kod>$this->db->query("更改表 tbl_Cell_Tote_Track 添加唯一的 (Cell_Id);</code>
到模型函数,但当使用现有序列号输入单元格时仍然收到重复项。我也尝;g<试
<pre class="brush:php;toolbar:false;">public function InsertNewCell($circuitId, $stageCheckId, $toteId, $posId)
{
$this->db->query("MASUKKAN KE DALAM tbl_Cell_Tote_Track (Circuit_Id, Stage_Check_Id, Tote_Id, Position_Id) PILIH $circuitId, $stageCheckId, $toteId, $posId
DI MANA TIDAK WUJUD(PILIH Cell_Id DARI tbl_Cell_Tote_Track)");
$this->db->execute();
$this->db->query("PILIH ATAS(1) Cell_Id DARIPADA tbl_Cell_Tote_Track ORDER BY Cell_Id DESC");
pulangkan $this->db->single()->Cell_Id;
}</pre>
& lt;多代码,请告诉我。</p>
Jika anda berada di
select
语句上设置where
anda boleh memilih kod terakhir (dengan pilihan) sepertiDan tukar parameter fungsi menghantar ID unit.
Jika
Cell_Id
ialah kenaikan automatik, maka anda perlu menentukan kekangan dengan lajur yang berbeza.