我有一个我在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());
}
}
答案 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()."' ";