簡體   English   中英

SQL表未在PHP中更新

[英]SQL Table not updating in PHP

我正在嘗試在PHP中創建更新功能,但記錄似乎並未根據更新進行更改。 我創建了一個JSON對象來保存傳遞到該文件的值,並且根據Firebug Lite控制台,我運行這些值的輸出很好,因此sql端可能出現問題。 誰能發現問題? 非常感謝您的幫助!

<?php

$var1 = $_REQUEST['action']; // We dont need action for this tutorial, but in a complex code you need a way to determine ajax action nature
$jsonObject = json_decode($_REQUEST['outputJSON']); // Decode JSON object into readable PHP object

$name = $jsonObject->{'name'}; // Get name from object
$desc = $jsonObject->{'desc'}; // Get desc from object
$did = $jsonObject->{'did'};// Get id object


mysql_connect("localhost","root","");  // Conect to mysql, first parameter is location, second is mysql username and a third one is a mysql password
@mysql_select_db("findadeal") or die( "Unable to select database"); // Connect to database called test


$query = "UPDATE deal SET dname = {'$name'}, desc={'$desc'} WHERE dealid = {'$did'}";
$add = mysql_query($query);
$num = mysql_num_rows($add);

if($num != 0) {

echo "true";

} else {

echo "false";

} 

?>

您需要使用反引號將MySQL中的保留字(例如desc轉義

UPDATE deal 
SET dname = {'$name'}, `desc`= {'$desc'} ....
                       ^----^--------------------------here

您需要在更新后使用mysql_affected_rows()而不是mysql_num_rows

我相信您在濫用花括號。 單引號應該放在它們的外面。:

"UPDATE deal SET dname = {'$name'}, desc={'$desc'} WHERE dealid = {'$did'}"

成為

"UPDATE deal SET dname = '{$name}', desc='{$desc}' WHERE dealid = '{$did}'"

附帶說明一下,使用任何mysql_ *函數並不是真正的安全性好。 我建議研究一下php的mysqlipdo擴展。

暫無
暫無

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

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