У меня есть PHP, который извлекает все записи сотрудников в БД.Передача переменной на статическую функцию
Теперь я хочу добавить предложение, чтобы он мог SELECT * WHERE companyId = x
.
Im, используя GET
для извлечения companyId
для использования.
Мой вопрос в том, как я могу передать $ статической функции?
function viewStaffInCompany(){
$results = array();
$companyClause = $_GET["companyClause"];
echo $companyClause . "<br><hr>";
$data = Staff::getCompanyStaffList();
$results['staff'] = $data['results'];
$results['totalRows'] = $data['totalRows'];
require("templates/viewStaff.php");
};
и
getCompanyStaffList();
public static function getCompanyStaffList($numRows=1000000, $order="id ASC", $companyClause) {
$conn = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD);
$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM Staff WHERE $companyClause ORDER BY " . $order . " LIMIT :numRows";
$st = $conn->prepare($sql);
$st->bindValue(":numRows", $numRows, PDO::PARAM_INT);
$st->execute();
$list = array();
while ($row = $st->fetch()) {
$users = new Staff($row);
$list[] = $users;
}
// Now get the total number of staff that matched the criteria
$sql = "SELECT FOUND_ROWS() AS totalRows";
$totalRows = $conn->query($sql)->fetch();
$conn = null;
return (array ("results" => $list, "totalRows" => $totalRows[0]));
}
вар $ VariableName; в вашей функции {} –
Вы не должны. По крайней мере, это не так, как сейчас, поскольку он откроет ворота для внедрения sql (в некоторых конфигурациях PDO). Подтвердите содержимое записи GET, прежде чем делать что-либо еще с ней, или измените функцию, чтобы привязать параметр к запросу в appripiate. После этого посмотрите на приведенный ниже ответ. – Rangad
спасибо @Rangad прочитает – atoms