簡體   English   中英

使用PHP表單更新MySQL

[英]Update MySQL using PHP form

我有一個PHP表單(update-complaint.php),其中有20個字段(Q1,Q2-Q20),並顯示該當前記錄的數據-所有功能都可以從這里正常運行。 提交后轉到“ updated-complaint.php”,字段應在數據庫中更新。 如果成功,它將說“是”或“錯誤”。

我已經通過修改數據來測試它,提交說成功,但是數據庫保持不變。 下面是updated-complaint.php。 有人可以幫忙嗎?

<?php
$host="localhost"; // Host name 
$username="user"; // Mysql username 
$password="password"; // Mysql password 
$db_name="db"; // Database name 
$tbl_name="complaints"; // Table name 

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// update data in mysql database 
$sql="UPDATE $tbl_name SET q1='$q1', q2='$q2', q3='$q3' WHERE id='$id'";
$result=mysql_query($sql);

// if successfully updated. 
if($result){
echo "Successful";
echo "<BR>";
echo "<a href='list_records.php'>View result</a>";
}

else {
echo "ERROR";
}

?>

郵寄表格是

        <?php
            $host="localhost"; // Host name 
            $username="user"; // Mysql username 
            $password="password"; // Mysql password 
            $db_name="db"; // Database name 
            $tbl_name="complaints"; // Table name

            mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
            mysql_select_db("$db_name")or die("cannot select DB");

            $id=$_GET['id'];

            // Retrieve data from database 
            $sql="SELECT * FROM $tbl_name WHERE id='$id'";
            $result=mysql_query($sql);
            $rows=mysql_fetch_array($result);

            ?>

        <table width="100%" border="0" class="add-record" align="center" cellpadding="0" cellspacing="1">
        <tr>
        <td><form name="form1" method="post" action="updated-complaint.php">
$sql="UPDATE $tbl_name SET q1='$_REQUEST[q1]', q2='$_REQUEST[q2]', q3='$_REQUEST[q3]' WHERE id='$_REQUEST[id]'";

請注意@Ranjith的注釋已棄用MYSQL_ *-請改用mysqli。

因為我不知道您是使用GET還是POST,所以我只是使用$ _REQUEST,但是如果您擔心安全性,那么使用POST和$ _POST會更好。

還要注意,您應該擔心安全性,要么轉義數據(mysqli_real_escape),要么在執行查詢之前准備語句。 這些是重要的問題,但不是問題的中心-因此,這篇文章頂部的答案很明顯。

我假設你有一個

<input type="hidden" name="id" value="<?= PRINT THE ID ?>" />

或類似的形式,以便將$ _REQUEST ['id']提供給update-complaint.php。

使用PDO! :)

$host="localhost"; // Host name 
$user="user"; // Mysql username 
$pass="password"; // Mysql password 
$dbname="db"; // Database name 
$tableName="complaints"; // Table name 

if ($_POST){
    //for mysql:    
    try {
        //connection: 
        $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

       //prepare inserting
       $STH = $DBH->prepare("UPDATE  $tableName (name, address, phone) VALUES (:name,:address,:phone) WHERE id = :id");

       //our placeholders, it's magic)) 
       $data = array(
           'id' => $_POST['id'],
           'name' => $_POST['name'],
           'address' => $_POST['address'],
           'city' => $_POST['city'],
       );

       //and now execute our query and substitute data
       //if execute is successful $result will true else false
       $result = $STH->execute($data);

       if ($result){
           echo "UPDATED!";
       }else{
           echo "Error!";
       }

    } catch(PDOException $e) {  
        echo "cannot connect to database";
        echo $e->getMessage();  
    }
}

ps很簡單。 我不檢查此代碼,但它必須有效)感謝您的收聽)

Database Table Description

CREATE TABLE IF NOT EXISTS `tbl_test` ( `f1` int(3) NOT NULL, `f2` varchar(50) NOT NULL, `f3` varchar(50) NOT NULL ); -- -- Dumping data for table `tbl_test` -- INSERT INTO `tbl_test` (`f1`, `f2`, `f3`) VALUES (1, 'Kathmandu', 'Nepal'), (2, 'Bhaktapur', 'Nepal');

List all records

$host="localhost"; // Host name $username="root"; // Mysql username $password=""; // Mysql password $db_name="test"; // Database name $tbl_name="tbl_test"; // Table name // Connect to server and select database. mysql_connect($host, $username, $password) or die("Error: to connect database server"); mysql_select_db($db_name) or die("Error: to select database"); $sql="Select * from ".$tbl_name; $result=mysql_query($sql); echo(""); echo("SNDistrictCountry"); if($result){ while($row = mysql_fetch_array($result)) { echo("".$row["f1"]. "" . $row["f2"]. "" . $row["f3"]. ""); } } else { echo "ERROR: to display record(s)"; }

Update record

// Connect to server and select database. mysql_connect($host, $username, $password) or die("Error: to connect database server"); mysql_select_db($db_name) or die("Error: to select database"); // update data in mysql database $v1=1; $v2='Banepa'; $sql="UPDATE ".$tbl_name." SET f2='".$v2."' WHERE f1=".$v1; echo ($sql); $result=mysql_query($sql); if($result){ echo "Successful"; echo "
"; echo "View result"; } else { echo "ERROR: to update record"; }

暫無
暫無

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

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