亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 準備語句插入或更新如果行存在

PHP 準備語句插入或更新如果行存在

PHP
函數式編程 2021-11-13 19:06:53
我一直在尋找以下代碼的修復程序。我在 stackoverflow 中搜索了許多類似的帖子,但沒有解決。我試圖建立的是,我想檢查一個查詢,如果行存在,我需要使用 UPDATE 語句 else INSERT 語句。我已經多次建立了這一點,但沒有準備好的聲明?,F在我正在用準備好的語句修改我以前的許多代碼。下面是我的代碼。<?phpinclude'../db.php';$exercise_days=$_POST['edays'];$id=$_POST['id'];if ($exercise_days!='' && is_numeric($exercise_days)) {    $query=$db->prepare("SELECT * from exercisetable where id=?");    $query->bind_param('s', $id);    /* execute query */    $query->execute();    /* store result */    $query->store_result();    $query->bind_result($rowcheck);    $query->fetch();    if ($rowcheck)    {        $e_update=$db1->prepare("UPDATE exercisetable SET exercise_days=? WHERE id=?");        $e_update->bind_param('ss', $exercise_days, $id);        $e_update->execute();        if($e_update){        $message='Exercise Days Updated';        $success='Success';        echo json_encode(array('message'=>$message,'success'=>$success));        }        $e_update->close();    } else {        $e_insert=$db1->prepare("INSERT INTO exercisetable (`id`, `exercise_days`) VALUES (?,?)");        $e_insert->bind_param('ss', $id, $exercise_days);        $e_insert->execute();        if($e_insert){        $message='Exercise Days Inserted';        $success='Success';        echo json_encode(array('message'=>$message,'success'=>$success));        }        $e_insert->close();    }}else  {    $message='Exercise Days Can Only Be Numbers';    $success='Error';    echo json_encode(array('message'=>$message,'success'=>$success));}  ?>執行上面的代碼總是進入 else 語句,即使行存在,它也會進入 INSERT。我想要的是如果行存在則更新,否則則插入。任何幫助表示贊賞。
查看完整描述

1 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

我正在發布對我有用的解決方案,以防萬一有人需要即時參考。


在更改我的原始 PHP 代碼之前對 MySql 列所做的一些編輯是我將我的列更改為 UNIQUE。


<?php


include'../db.php';


$exercise_days=$_POST['exercise_days'];

$id=$_POST['id'];


if ($exercise_days!='' && is_numeric($exercise_days))  

{

        $query=$db->prepare("INSERT INTO exercisetable (`id`, `exercise_days`) VALUES (?,?) ON DUPLICATE KEY UPDATE exercise_days =?");

        $query->bind_param('sss', $id, $exercise_days, $exercise_days);

        $query->execute();

        if($query){

        $message='Exercise Days Inserted';

        $success='Success';

        echo json_encode(array('message'=>$message,'success'=>$success));

        }

        $query->close();

}


else

{

    $message='Excercise Days Can Only Be Numbers';

    $success='Error';

    echo json_encode(array('message'=>$message,'success'=>$success));

 ?>


查看完整回答
反對 回復 2021-11-13
  • 1 回答
  • 0 關注
  • 156 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號