簡體   English   中英

編輯表格PHP PDO

[英]Edit Form PHP PDO

我在SQL Server數據庫中有一張表。 我創建了一個“ edit.php”,可以在其中更新數據庫。 使用PDO建立數據庫連接。

表中有很多Null值。 當我單擊“編輯”選項時,表格彈出。 如果我完全填寫了記錄,則數據庫將得到更新。 否則,我會收到此錯誤消息。

SQLSTATE [42000]:[Microsoft] [SQL Server的ODBC驅動程序11] [SQL Server]將數據類型nvarchar轉換為數值時出錯。

我的edit.php的代碼如下:

require_once('database.php');
if (isset($_POST['btn_submit'])) {
        $id = $_POST['txt_id'];
        $site = $_POST['txt_site_code'];
        $location = $_POST['txt_location_name'];

 try {
       $stmt = $conn->prepare("UPDATE MATRIX SET Site_Code=:site, Location_name=:location
WHERE OBJECTID =:id");
$stmt->execute(array(':site' => $site, ':location' => $location,':id' => $id));
if ($stmt) {


                   header('Location:index.php');

               }
             } catch (PDOException $e) {
               echo $e->getMessage();
            }
}

    $object_id = '';
    $site = '';
    $location = '';

 if (isset($_GET['id'])) {
        $id = $_GET['id'];
        $stmt = $conn->prepare("SELECT * FROM MATRIX WHERE OBJECTID=:id");
        $stmt->execute(array(':id' => $id));
        $row = $stmt->fetch();
        $object_id = $row['OBJECTID'];
        $site = $row['Site_Code'];
        $location = $row['Location_name'];
}

?>
    <h2>Edit the records</h2>

    <form action="" method="post">
        <table border="3px" cellpadding="5px">

            <tr>
                <td>Site Code</td>
                <td><input type="text" name="txt_site_code"  value="<?= $site; ?>"></td>
            </tr>

            <tr>
                <td>Location Name</td>
                <td><input type="text" name="txt_location_name" value="<?= $location; ?>"></td>
            </tr>

             <tr>
                <td><input type="hidden" name="txt_id" value="<?= $object_id; ?>"></td>
                <td><input type="submit" name="btn_submit" value="Submit"></td>
            </tr>

</table>
</form>

感謝您的幫助。

您必須防止php接收到空數據。

范例:

$site = '';
if(isset($_POST['site'])) {
    $site = $_POST['site'];
}

在更新數據庫之前,為每個要保護的值執行此操作。

如果沒有數據而不是數字值,則插入字符串值(例如“ 0”)。 由於將數字值插入字符串類型列而導致的錯誤。

暫無
暫無

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

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