2016-03-22 66 views
-1

我創建了一個提交給mysql數據庫的表單。現在我試圖做的是讓它更新。我遇到的問題是下面的更新查詢,我只是無法弄清楚我出錯的地方。Mysql更新函數

<?php 
/* 
Attempt MySQL server connection. Assuming you are running MySQL 
server with default setting (user 'root' with no password) 
*/ 
include 'db.php'; 

// Check connection 
if($link === false){ 
    die("ERROR: Could not connect. " . mysqli_connect_error()); 
} 

// Escape user inputs for security 
$title = mysqli_real_escape_string($link, $_POST['title']); 
$price = mysqli_real_escape_string($link, $_POST['price']); 
$sqm = mysqli_real_escape_string($link, $_POST['sqm']); 
$sqm_land = mysqli_real_escape_string($link, $_POST['sqm_land']); 
$type = mysqli_real_escape_string($link, $_POST['type']); 
$area = mysqli_real_escape_string($link, $_POST['area']); 
$location = mysqli_real_escape_string($link, $_POST['location']); 
$bedroom = mysqli_real_escape_string($link, $_POST['bedroom']); 
$terrace = mysqli_real_escape_string($link, $_POST['terrace']); 
$orientation = mysqli_real_escape_string($link, $_POST['orientation']); 
$water = mysqli_real_escape_string($link, $_POST['water']); 
$seaview = mysqli_real_escape_string($link, $_POST['seaview']); 
$pool = mysqli_real_escape_string($link, $_POST['pool']); 
$ownerinfo = mysqli_real_escape_string($link, $_POST['ownerinfo']); 
$gaddress = mysqli_real_escape_string($link, $_POST['gaddress']); 
$description = mysqli_real_escape_string($link, $_POST['description']); 




// attempt insert query execution 
$sql = "update INTO property (title, price, sqm, sqm_land, type, area, location, bedroom, terrace, orientation, water, seaview, pool, ownerinfo, gaddress, description) VALUES 
('$title', '$price', '$sqm', '$sqm_land', '$type', '$area', '$location', '$bedroom', '$terrace', '$orientation', '$water', '$seaview', '$pool', '$ownerinfo', '$gaddress', '$description')"; 
if(mysqli_query($link, $sql)){ 
    echo "Records updated successfully."; 
} else{ 
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link); 
} 

// close connection 
mysqli_close($link); 

?> 
+0

你準確得到了什麼錯誤? –

+0

你已經在使用MySQL檢查錯誤,但沒有使用PHP http://php.net/manual/en/function.error-reporting.php,並且Lord知道這裏有什麼'db.php'。 –

+2

[更新mysql列]的可能重複(http://stackoverflow.com/questions/6503824/update-mysql-column) – Machavity

回答

1

您對UPDATE使用的語法錯誤。

閱讀手冊:

什麼你使用的是INSERT語法。從手動http://dev.mysql.com/doc/en/insert.html

例子:

UPDATE t1 SET col1 = col1 + 1, col2 = col1; 

,並使用WHERE條款,否則就會被更新你的整個分貝。從手動

例子:

UPDATE items,month SET items.price=month.price 
WHERE items.id=month.id; 

所以你的情況和例如(填寫其餘部分):

UPDATE property SET title = '$title', price = '$price' ... WHERE column = ? 
  • column是你要定位的列名, ?是行。

你的mysqli_error($link)會拋出你一些東西。

旁註:「教一個人如何釣魚,而不是扔他們的魚」

但是,如果這裏的目標是INSERT,那麼您需要使用INSERT INTO table而不是UPDATE INTO table

還要確保您的表單使用POST方法,並且所有POST數組都包含值。

error reporting添加到您的文件的頂部,這將有助於發現錯誤。

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

// Then the rest of your code 

旁註:顯示錯誤應該只在分期完成,並且從不生產。


腳註:

用於與db.php未知連接MySQL的API。確保您使用的是與您查詢相同的API,即mysqli_。不同的API不混合。

+0

我在這裏切碎的肝臟是什麼? –

+0

您好,非常抱歉,我完全錯過了您的帖子。如何每次放置一個列/行時不同? – stephenaxe18

+0

@ stephenaxe18對不起,我不知道你的意思。 –

0

你的語法不正確,應該採用以下格式:「標題」

$sql = "UPDATE property SET title='$title'"; 

你必須,因爲我只包括添加所有用逗號分隔的名稱/值對

+0

我剛剛改變了這一點。非常感謝,除了其更新的所有其他頁面相同。關於如何只更新那一頁的任何想法? – stephenaxe18

+0

@ stephenaxe18 *「關於如何更新那一頁的任何想法?」* - 我已經給你答覆了。你在等別人抓住我的東西來回答你? –