MySQL - 查询未在PHP中运行

时间:2014-04-28 03:29:00

标签: php mysql

我有一个我在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());
    }               
}

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

为了使您的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()."' ";