更新 table 的列值并同时显示 (PHP)
Update table's column value and showing it at the same time (PHP)
首先,我正在开发的系统是一个虚拟的HR系统。现在,我有这个 profile.php 页面,其中包含申请人的表格。该表格由 her/his 基本资料组成,需要 him/her 设置申请人的技能。当申请人按下提交按钮时,它将转到 test.php,该页面将根据 he/she 在 [=14] 中输入的申请人的技能显示申请人可能胜任的工作=].
现在,我遇到了这个错误
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Specialist WHERE fname=Jamie' at line 2
这是 test.php 中的代码,我在其中尝试更新并显示员工 table 中的工作列值。
$last = mysql_query("SELECT * from employee ") or die(mysql_error());
echo "<table border='0' cellpadding='15' text-align = 'center' >";
echo "<tr>";
echo "<th>Name</th>";
echo "</tr>";
while($row2 = mysql_fetch_array( $last )){
$nym = $row2['fname'];
}
$result = mysql_query("SELECT * FROM employee as t1,jobs as t2
where t1.skills = t2.skills ") or die(mysql_error());
while($row = mysql_fetch_array( $result )){
$jt = $row['jobtitle'];
$hey = mysql_query("UPDATE employee
SET job=$jt
WHERE fname=$nym")
or die(mysql_error());
echo '<th><b><font color="#663300">' . $row['job'] . '</font></b><br></th>';
}
这是我的员工数据库的快照
http://snag.gy/i7pw6.jpg
为了快速修复,请将 while
循环更改为以下内容:
while($row = mysql_fetch_array( $result )){
$jt = $row['jobtitle'];
$hey = mysql_query("UPDATE employee
SET job='$jt'
WHERE fname='$nym'")
or die(mysql_error());
echo '<th><b><font color="#663300">' . $row['job'] . '</font></b><br></th>';
}
请注意调用 mysql_query
时 $nym 变量周围的撇号。
我强烈建议您更改查询并使用prepared statements
查询您的数据库
否则,您的代码容易受到 SQL Injection 次攻击
您可以使用下面的方式实现它:只需在适当的括号中设置 $nym 变量
$hey = mysql_query("UPDATE employee
SET job=$jt
WHERE fname= '".$nym."')
or die(mysql_error());
像这样更改查询...
$hey = mysql_query("UPDATE employee
SET `job`='$jt'
WHERE `fname`='$nym'")
or die(mysql_error());
首先,我正在开发的系统是一个虚拟的HR系统。现在,我有这个 profile.php 页面,其中包含申请人的表格。该表格由 her/his 基本资料组成,需要 him/her 设置申请人的技能。当申请人按下提交按钮时,它将转到 test.php,该页面将根据 he/she 在 [=14] 中输入的申请人的技能显示申请人可能胜任的工作=].
现在,我遇到了这个错误
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Specialist WHERE fname=Jamie' at line 2
这是 test.php 中的代码,我在其中尝试更新并显示员工 table 中的工作列值。
$last = mysql_query("SELECT * from employee ") or die(mysql_error());
echo "<table border='0' cellpadding='15' text-align = 'center' >";
echo "<tr>";
echo "<th>Name</th>";
echo "</tr>";
while($row2 = mysql_fetch_array( $last )){
$nym = $row2['fname'];
}
$result = mysql_query("SELECT * FROM employee as t1,jobs as t2
where t1.skills = t2.skills ") or die(mysql_error());
while($row = mysql_fetch_array( $result )){
$jt = $row['jobtitle'];
$hey = mysql_query("UPDATE employee
SET job=$jt
WHERE fname=$nym")
or die(mysql_error());
echo '<th><b><font color="#663300">' . $row['job'] . '</font></b><br></th>';
}
这是我的员工数据库的快照 http://snag.gy/i7pw6.jpg
为了快速修复,请将 while
循环更改为以下内容:
while($row = mysql_fetch_array( $result )){
$jt = $row['jobtitle'];
$hey = mysql_query("UPDATE employee
SET job='$jt'
WHERE fname='$nym'")
or die(mysql_error());
echo '<th><b><font color="#663300">' . $row['job'] . '</font></b><br></th>';
}
请注意调用 mysql_query
时 $nym 变量周围的撇号。
我强烈建议您更改查询并使用prepared statements
查询您的数据库否则,您的代码容易受到 SQL Injection 次攻击
您可以使用下面的方式实现它:只需在适当的括号中设置 $nym 变量
$hey = mysql_query("UPDATE employee
SET job=$jt
WHERE fname= '".$nym."')
or die(mysql_error());
像这样更改查询...
$hey = mysql_query("UPDATE employee
SET `job`='$jt'
WHERE `fname`='$nym'")
or die(mysql_error());