更新表的列值并同时显示(PHP)

时间:2015-03-21 06:33:58

标签: php mysql database syntax-error

首先,我正在研究的系统是虚拟人力资源系统。现在,我有这个profile.php页面,其中有申请人的表格。表格由她/他的基本档案组成,并要求他/她设定申请人的技能。当申请人按下提交按钮时,它将转到test.php,页面将根据他/她在profile.php中输入的申请人的技能显示申请人符合条件的可能职位。 / p>

现在,我有这个错误

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 中的代码,我尝试更新并在员工表中显示作业列值。

        $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

3 个答案:

答案 0 :(得分:0)

要进行快速修复,请将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 Injectio n次攻击

答案 1 :(得分:0)

你可以使用bellow实现它:只需在合适的括号中设置$ nym变量

   $hey = mysql_query("UPDATE employee
                        SET job=$jt
                        WHERE fname= '".$nym."')
                        or die(mysql_error()); 

答案 2 :(得分:0)

像这样更改查询...

 $hey = mysql_query("UPDATE employee
                            SET `job`='$jt'
                            WHERE `fname`='$nym'")
                            or die(mysql_error());