簡體   English   中英

使用mysqli數據庫檢查提交表單輸入

[英]Check submit form input with mysqli database

當我在表單中鍵入代碼時,我希望我的PHP代碼在提交時檢查該代碼是否存在於數據庫中,然后運行MySqli查詢。 我嘗試這樣做,但出現錯誤Cannot use isset() on the result of an expression (you can use "null !== expression" instead)我已經用Google搜索了問題,但沒有一個確實幫我解決了問題或了解我的問題。

形成

<p><b>Skriv in din laddkod nedan och tryck på "Ladda"</b></p>
<form action="laddaklar.php" method="post">
<input type="text" name="laddkod"/>
<input type="submit" name="submit" value="Ladda" />
</form>

的PHP

<?php 

session_start();

    $mysqli = NEW MySQLI ('localhost', 'root', '', 'ph');

    $laddkod = isset($_POST['laddkod']) ? $_POST['laddkod'] : '';



    $kod= "SELECT refill from card_refill"; 
    $result = $mysqli->query($kod);


    if(isset($_POST['submit'] && $laddkod==$result)){


     $resultSet = $mysqli->query ("UPDATE card_credit SET value= value + (select credit from card_refill WHERE refill='" . $_POST['laddkod'] . "') WHERE card_id = '" . $_SESSION['card'] . "' ");

 echo "<b>Ditt kort har laddats!</b>";
}
else
{
    echo "Fel laddkod";
}

您得到的錯誤:

無法在表達式的結果上使用isset()

由看起來像在此處嘗試使用表達式引起的:

if(isset($_POST['submit'] && $laddkod==$result)){...

您必須正確關閉isset()並刪除多余的雜物)

if( isset($_POST['submit']) && $laddkod==$row['refill'] ){...
-----------------------add^  --------------------remove^

此外,您不會為第一個查詢獲取任何行結果:

$kod= "SELECT refill from card_refill"; 
$result = $mysqli->query($kod);
$row = $result->fetch_assoc(); // The value will be in the $row array

然后,您似乎永遠不會執行UPDATE查詢。


另外,不清楚在哪里設置$_SESSION['card'] ,但是在嘗試UPDATE查詢之前,您需要確保已設置它。

暫無
暫無

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

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