簡體   English   中英

PHP嘗試更新MySQL數據庫不會更新任何內容

[英]PHP attempt to update a MySQL database doesn't update anything

我下面有更新我的MySQL數據庫的代碼,它正在運行,但是當我使用phpmyadmin檢查rcords時沒有更新數據庫。 請幫助我。

$database = "carzilla";

$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

$manufacturerTable = $_POST[vehicleManufacturer];
$numberToSearch = $_POST[vehicleIdNo];
$engineType = $_POST[engineType];
$engineCC = $_POST[engineCC];
$year = $_POST[year];
$numberofDoors = $_POST[numberofDoors];
$tireSize = $_POST[tireSize];
$chasisNumber = $_POST[chasisNumber];
$vehicleMake = $_POST[vehicleMake];
$price=$_POST[price];

mysql_select_db("$database", $con);

$sql = mysql_query("UPDATE $manufacturerTable SET username='vehicleMake', 
engineType='$engineType', engineCC='$engineCC', year='$year', chasisNo='$chasisNumber', numberOfDoors='$numberofDoors' ,numberOfDoors='$numberofDoors',  tireSize='$tireSize', price='$price' WHERE `index` ='$id'");

if (!mysql_query($sql,$con))
{
 die('Error: ' . mysql_error());
}
echo 'record has been successfuly';

mysql_close($con);


?>

好好看一下您的查詢。 您在同一條語句中以幾種不同的方式引用PHP變量。 在查詢$ manufacturerTable只是$ manufacturerTable中,您將其他一些括在單引號中,將其中的一些從$中刪除,而將其從中刪除。 我知道我經常講這種話,但是您真的應該研究使用准備好的語句。 它們消除了在查詢中使用變量的所有猜測工作,並且避免了注入黑客的攻擊。 但是這里的簡短答案是,您沒有在查詢中正確引用變量。

有時,將變量直接放入語法中可能會導致問題。 您是否嘗試過使用串聯查詢。

$query = "UPDATE ".$manufacturerTable." SET username='vehicleMake', engineType='."$engineType."', engineCC='".$engineCC."', year='".$year."', chasisNo='".$chasisNumber."', numberOfDoors='".$numberofDoors."' ,numberOfDoors='".$numberofDoors."',  tireSize='".$tireSize."', price='".$price."' WHERE index =".$id;

$sql = mysql_query($query); # this should be put in the if else

如果索引是基於數字的,則不需要在其周圍加上“”。 加號是username ='vehicleMake'或它是一個變量。 如果它是一個變量,則添加$或像其他一樣使用串聯。 您的SQL檢查應如下所示。

if (mysql_query($query))
{
 echo 'record has been successfuly';
} else {
 die('Error: ' . mysql_error() . ' | ' . $query);
}

導出查詢的原因是,您可以手動嘗試以確保其正常工作以及您可能遇到的錯誤。 phpMySQL有時會顯示與mysql_error()不同的錯誤

另外,您應該轉義用戶使用mysql_escape_string()或mysql_real_escape_string()輸入的所有輸入

暫無
暫無

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

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