0

我正在一个网站上工作,该网站应该从页面上的表单传递数据并使用 PHP 更新服务器上的学生表。我现在正在尝试处理的条件是修改数据,因此它应该能够更新服务器上的数据,但它不能......

你们可以提供的任何帮助或建议将不胜感激。提前致谢。

这是我的代码:

<?php

date_default_timezone_set('America/New_York');

$connection = mysql_connect("hostaddress","DBname","password");

            // Check connection
if (!$connection)
{
            echo "Connection failed: " . mysql_connect_error();
}
            else
{
                //select table
                mysql_select_db("DBname");
                echo "Database Found! <br>";

                $query = "UPDATE students
                          SET firstName = $_POST[firstName],
                              lastName = $_POST[lastName]
                          WHERE StudentID = $_POST[StudentID]";

                $res = mysql_query($query);

                if ($res)
                {
                   echo "<p>Record Updated<p>";
                }   
                else
                {
                   echo "Problem updating record. MySQL Error: " . mysql_error();
                }
            }

            mysql_close($connection);
        ?>

我不断收到此错误:

发现数据库!更新记录时出现问题。MySQL 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的 'lastName = , WHERE Stud' 附近使用正确的语法

PS:我已经用一些数据创建了学生表。我可以使用终端和与上面相同的 mysql 查询访问该表并对其进行修改,但仍然没有运气。另外,我故意更改了代码中的主机地址、数据库名称和密码(以防万一有人问)。

的输出echo $query

UPDATE fall14_bmora013.students SET firstName = , lastName = 
WHERE StudentID = 890
4

3 回答 3

1

显然,您的语句中有一个语法错误(一个额外的,before WHERE),UPDATE如下所示

UPDATE students SET firstName = $_POST[firstName],
lastName = $_POST[lastName], <-- remove this extra comma
WHERE StudentID = $_POST[StudentID] 

编辑:

检查您的表单元素是否真的命名为firstNameand lastName?检查拼写。我怀疑这些名称与您在代码中所指的名称不同。

于 2014-11-01T01:04:16.930 回答
1

你自己写的:MySQL 错误:你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的 'lastName = , WHERE Stud' 附近使用正确的语法

打印查询字符串,它不是您所期望的。

Ps 您可能应该转义您的输入以避免 sql-injectiion。

另外,请注意您不应再使用 mysql_ 函数。阅读以下页面中的警告:http: //php.net/manual/en/function.mysql-query.php

于 2014-11-01T01:07:15.220 回答
0

一旦尝试这个...

$query = "更新学生 SET firstName='".$_POST['firstName']."', lastName='".$_POST['lastName']."' WHERE StudentID= '".$_POST['StudentID']." '";

于 2014-11-01T05:03:25.767 回答