我有幾個表格要提交到我的資料庫,我做了一個通用函式來更新指定的表,但問題是代碼不修改資料庫,它只是將列(全名)更改為零這里是我的代碼波紋管:請幫忙,非常感謝:
<?php
include('../config.php');
if (isset($_POST['loginfo'])) {
if (update_table('users','id =2 And password =12345')== true){
echo "Success";
}
}
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
function update_table($tablename,$creteria) { //>>>>
$sql = "UPDATE ".$tablename. " set "; //>>>>
$postdata = $_POST; //>>>>
$count = 0; //>>>>
$i = 0; //>>>>
foreach ($postdata as $key => $value) { //>>>>
$i ; //>>>>
$count = count($postdata); //>>>>
if (!empty($value)) { //>>>>
$sql .= " $key = '$value' "; //>>>>
$sql .= $i == $count ? " " : " AND "; } //>>>>
} //>>>>
$sql .= " where ". $creteria; //>>>>
$MYDB = mysqli_connect(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE); //>>>>
if (mysqli_query($MYDB, $sql)){ //>>>>
echo "<pre>"; //>>>>
print_r($postdata); //>>>>
return true; //>>>>
} //>>>>
$MYDB -> close(); //>>>>
} //>>>>
///>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
?>
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px solid;
}
</style>
</head>
<body>
<form method="post">
<input type="hidden" name="loginfo">
<label for="id"> id </label>
<input type="text" name="id">
<label for="fullname"> Full Name </label>
<input type="text" name="fullname">
<label for="email"> Email </label>
<input type="text" name="email">
<label for="phone"> Phone </label>
<input type="text" name="phone">
<label for="company"> Company </label>
<input type="text" name="company">
<label for="password"> Password </label>
<input type="text" name="password">
<input type="submit">
</form>
</body>
</html

uj5u.com熱心網友回復:
使用 PHP 生成 SQL 查詢時出現語法錯誤。首先,您將 set 條件與and一起使用是不正確的 。
你現在的查詢是這樣的:
UPDATE users set id = '1' AND fullname = 'scdasd' AND email = 'sadasd' AND phone = 'sdasd' AND company = 'asdad' AND password = 'asdasd' where id =2 And password =12345
您需要像這樣更改 PHP 腳本:
<?php
include('../config.php');
if (isset($_POST['loginfo'])) {
if (update_table('users','id =2 And password =\'12345\'')== true){
echo "Success";
}
}
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
function update_table($tablename,$creteria) { //>>>>
$sql = "UPDATE ".$tablename. " set "; //>>>>
$postdata = $_POST; //>>>>
$count = 0; //>>>>
$i = 0; //>>>>
foreach ($postdata as $key => $value) { //>>>>
$i ; //>>>>
$count = count($postdata); //>>>>
if (!empty($value)) { //>>>>
$sql .= " $key = '$value' "; //>>>>
$sql .= $i == $count ? " " : " , "; } //>>>>
} //>>>>
$sql .= " where ". $creteria; //>>>>
/* $MYDB = mysqli_connect(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE); //>>>>
if (mysqli_query($MYDB, $sql)){ //>>>>
echo "<pre>"; //>>>>
print_r($postdata); //>>>>
return true; //>>>>
} //>>>>
$MYDB -> close(); */
echo "$sql"; //>>>>
echo "<pre>"; //>>>>
print_r($postdata); //>>>>
return true; //>>>>
} //>>>>
///>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
?>
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px solid;
}
</style>
</head>
<body>
<form method="post">
<input type="hidden" name="loginfo">
<!-- <label for="id"> id </label>
<input type="text" name="id">-->
<label for="fullname"> Full Name </label>
<input type="text" name="fullname">
<label for="email"> Email </label>
<input type="text" name="email">
<label for="phone"> Phone </label>
<input type="text" name="phone">
<label for="company"> Company </label>
<input type="text" name="company">
<!-- <label for="password"> Password </label>
<input type="text" name="password">-->
<input type="submit">
</form>
</body>
</html
之后,查詢將顯示如下:
UPDATE users set id = '1' , fullname = 'scdasd' , email = 'sadasd' , phone = 'sdasd' , company = 'asdad' , password = 'asdasd' where id =2 And password ='12345'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/524160.html
標籤:phphtmlmysql
