簡體   English   中英

檢查數據庫中的現有名稱

[英]Check for existing name in the database

這是我想添加操作時的代碼,但它不檢查數據庫中已有的現有操作,有什么辦法嗎? 下面的代碼:

<?php
include('db_conn.php');

$operationname = $_POST['operationname'];
$cost = $_POST['cost'];
$sql = "INSERT INTO operation(operationname,cost) VALUES('$operationname', '$cost')";
$query = mysqli_query($con, $sql);
if($query==true){
    $data = array(
        'status'=>'success',
    );
    echo json_encode($data);
} else {
    $data = array(
        'status'=>'failed',
    );
    echo json_encode($data);
}
?>

首先,正如@gertjanknappen 已經提到的:使operationname在數據庫中唯一,它實際上看起來是作為表主鍵的一個很好的候選者。

這樣,數據庫將防止重復插入。 接下來你的實際目標是什么:只是防止重復輸入,或者在operationname名稱行已經存在的情況下更新cost

在后一種情況下

$sql = "INSERT INTO operation(operationname,cost) VALUES('$operationname', '$cost') ON DUPLICATE KEY UPDATE cost='$cost'";

operationmame上的唯一鍵或主鍵約束相結合,應該可以為您提供所需的內容。

PS:從用戶輸入構造查詢字符串的方式肯定是 SQL 注入攻擊的秘訣,因此您可能還想閱讀准備好的語句參數綁定,或者至少了解如何正確驗證和轉義用戶輸入...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM