MySQL-查询未在PHP中运行

MySQL-查询未在PHP中运行,php,mysql,Php,Mysql,我在PHP函数中使用了一个查询。有些东西在通过查询之前就中断了,但它不会“回显”到屏幕上。(查询上方的调用确实会显示)。我是个新手,有没有注意到这里有什么问题?谢谢 function updateEmployee (Employee $emp){ echo $emp->getStreetAddress(); echo $emp->getCity(); echo $emp->getState(); echo $emp->getZip();

我在PHP函数中使用了一个查询。有些东西在通过查询之前就中断了,但它不会“回显”到屏幕上。(查询上方的调用确实会显示)。我是个新手,有没有注意到这里有什么问题?谢谢

function updateEmployee (Employee $emp){
    echo $emp->getStreetAddress();
    echo $emp->getCity();
    echo $emp->getState();
    echo $emp->getZip();
    echo $emp->getUsername();
    echo $emp->getPassword();
    echo $emp->getSsn();
    echo $emp->getPersonId();

    $query = "UPDATE Employees E JOIN Persons P ON E.personId = P.personId SET firstName=".$emp->getFirstName().
                ", lastName=".$emp->getLastName().
                ", phoneNum=".$emp->getPhoneNum().
                ", streetAddress".$emp->getStreetAddress().
                ", city=".$emp->getCity().
                ", state=".$emp->getState().
                ", zip=".$emp->getZip().
                ", username=".$emp->getUsername().
                ", password=".$emp->getPassword().
                ", ssn=".$emp->getSsn().
                " WHERE P.personId=".$emp.getPersonId().";";

    echo $query;

    $result = mysql_query($query);

    if (!$result) {
        die('Invalid query: ' . mysql_error());
    }               
}

我自己对PHP非常陌生,但我注意到WHERE行有
$emp.getSomething()
,而其他行有
$emp->getSomething()
。请注意。而不是
->

此外,您还可以尝试在调试时将其添加到页面顶部:

ini_set('display_errors',1);
error_reporting(E_ALL);

为了使SQL语句更安全地执行,请在每个字段中使用单引号字符串

例如:

$query = "UPDATE Employees E JOIN Persons P ON E.personId = P.personId SET firstName='".$emp->getFirstName()."', lastName='".$emp->getLastName()."' 
WHERE P.personId='".$emp.getPersonId()."' ";

用单引号括住新的值似乎你没有过滤或清理你的代码,这就是为什么输入表单值可能会破坏你的代码。这是为了明天的一个小型数据库项目,我不是很勤奋简化查询从一个更新开始