MySQL-查询未在PHP中运行
我在PHP函数中使用了一个查询。有些东西在通过查询之前就中断了,但它不会“回显”到屏幕上。(查询上方的调用确实会显示)。我是个新手,有没有注意到这里有什么问题?谢谢MySQL-查询未在PHP中运行,php,mysql,Php,Mysql,我在PHP函数中使用了一个查询。有些东西在通过查询之前就中断了,但它不会“回显”到屏幕上。(查询上方的调用确实会显示)。我是个新手,有没有注意到这里有什么问题?谢谢 function updateEmployee (Employee $emp){ echo $emp->getStreetAddress(); echo $emp->getCity(); echo $emp->getState(); echo $emp->getZip();
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()."' ";
用单引号括住新的值似乎你没有过滤或清理你的代码,这就是为什么输入表单值可能会破坏你的代码。这是为了明天的一个小型数据库项目,我不是很勤奋简化查询从一个更新开始