2017-06-10 65 views
0

所以我很抱歉,因爲我覺得我問了很多愚蠢的問題。我正在學習,但我到了那裏。PHP更新MySQL,表單輸入通過列名

我已經創建了一個基本的HTML表單,並在前面的回答幫助下完成了PHP和MySQL查詢。但是,當我提交表單時,表單中的輸入值將作爲列名而不是行中要更新的信息。

簡單來說,當輸入是否更改名字來自詹姆斯·喬希錯誤消息的形式提交是:

「錯誤更新記錄:未知列‘喬希’在‘字段列表’」

我雖然在我的SQL查詢下面它會拿起列名作爲first_name,但這顯然不會發生。

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "Users"; 

//Create variables 
$first_name=$_POST['first_name']; 
$last_name=$_POST['last_name']; 
$ID=$_POST['ID']; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 

$sql = "UPDATE Users SET first_name=$first_name, last_name=$last_name WHERE 
ID=$ID"; 

if ($conn->query($sql) === TRUE) { 
    echo "Record updated successfully"; 
} else { 
    echo "Error updating record: " . $conn->error; 
} 

$conn->close(); 
?> 
+0

可能重複https://stackoverflow.com/questions/1346209/unknown-column-in-field-list-error-on-mysql-update-query –

+0

我通過閱讀但似乎沒有涵蓋我得到的問題。我的問題是表單輸入正在改變SQL查詢中預期的列名稱。所以,在列名是first_name的情況下,我想將它更新爲Josh,它實際上是在尋找列名Josh。 – James

+0

您在$ first_name和其他字段中沒有引號。字符串應該用引號括起 –

回答

0

我不知道PHP,但我懷疑你的問題是,你arent't報價在您的更新statment價值。因此,嘗試這樣的:

"UPDATE Users SET first_name='$first_name', last_name='$last_name' WHERE ID=$ID"