我有一個簡單的MYSQL數據庫,其中field_3是一個varchar鍵值。我正在嘗試將數據庫發佈更新爲兩個名爲start和end的TIME字段。無法使用PHP更新MYSQL
不過,我不斷收到此錯誤
注意:未定義的變量:empd_end在C:\ XAMPP \ htdocs中\ B1 \ update.php上線25 無法更新數據:您有一個錯誤的SQL語法;檢查對應於你的MySQL服務器版本正確的語法使用附近的手冊「:12:00,結束= WHERE field_3 = [email protected]」在行1
<html>
<head>
<title>Update a Record in MySQL Database</title>
</head>
<body>
<?php
if(isset($_POST['update']))
{
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn)
{
die('Could not connect: ' . mysql_error());
}
$emp_id = $_POST['emp_id'];
$emp_salary = $_POST['emp_salary'];
$emp_end= $_POST['emp_end'];
$sql = "UPDATE usezas ".
"SET start = $emp_salary, end = $empd_end".
"WHERE field_3 = $emp_id" ;
mysql_select_db('db1');
$retval = mysql_query($sql, $conn);
if(! $retval)
{
die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
mysql_close($conn);
}
else
{
?>
<form method="post" action="<?php $_PHP_SELF ?>">
<table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="100">EMAIL</td>
<td><input name="emp_id" type="text" id="emp_id"></td>
</tr>
<tr>
<td width="100">Start TIME</td>
<td><input name="emp_salary" type="text" id="emp_salary"></td>
</tr>
<tr>
<td width="100">END TIME</td>
<td><input name="emp_end" type="text" id="emp_end"></td>
</tr>
<td width="100"> </td>
<td> </td>
</tr>
<tr>
<td width="100"> </td>
<td>
<input name="update" type="submit" id="update" value="Update">
</td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>
對於調試SQL語句的問題,您可以在提交到數據庫之前** echo $ sql;'**。 (你會發現字符串和日期時間文字需要用一個SQL語句中的單引號括起來,它們看起來像代碼中的變量,但是在發送到數據庫的SQL文本中,它們是文字。)另外,** mysql **接口已棄用;新的開發應該使用** mysqli **或** PDO **。當它們被合併到SQL文本中時,可能不安全的值需要正確*轉義*。更好的模式是使用*準備好的語句*和*綁定佔位符*。 – spencer7593