[英]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.