나는 데이터베이스에 저장된 여러 개의 문자열을 (예, 나는 그것이 가장 좋은 방법이 아니다 알지만, 다른 설계 시스템 사람과 일하고 있어요 내가 변경할 수 없습니다.)평가 PHP 코드
이
date('d', strtotime("thursday, november ".date("Y")." + 3 weeks"))
이 내 코드로 뽑아 $request['order_date']
라는 변수에 저장됩니다 예를 들어, 내 테이블이라고 specialDates에, 나는이 포함 된 computedDate 열 수 있습니다.
표준 PHP 코드에서 사용되는 경우 추수 감사절이 올해에 속하는 날짜를 반환합니다. 이 값의 평가 된 값 (올해 2013 년 값은 28)을 다른 쿼리로 전달해야합니다. 하지만 평가할 가치가없는 것 같습니다.
$query = 'SELECT count(orderID) as numberOfOrders FROM customer_orders WHERE customerID = ? AND orderDate = ?';
$param = array($request['customer_id'], eval($request['order_date']));
이 작동하지 않습니다.
echo eval($request['order_date']);
나이 :
echo eval(" return \$request['order_date']; ");
그냥 오히려 예상보다 문자열의 리터럴 값 (예를 date('d' etc.)
출력합니다 때 난 그냥이 일을, 화면에 값을 에코 시도 평가 값.
내가 잘못 뭐하는 거지?
업데이트 내가 트라이 아래 개발 AScherer의 대답, 난 그냥 화면에 값 에코 때이 작업을 수행하지만 :
$param = array($request['customer_id'], eval("return {$request['order_date']}"));
방법 : 내 배열 내부의 평가를 사용하려고하면
echo eval(" return {$request['order_date']}; ");
작동하지 않습니다 배열에서 전달하는 값이 문자열 pre-eval 대신 28의 실제 값이되도록이 값을 사용할 수 있습니까?
나는 추수 감사절을 주문 날짜를 계산하는 것으로부터 어떻게 얻었는지 잘 모르겠다. : 이것은 매우 혼란 스럽다. – Oldskool
@Oldskool - OP의 전체 쿼리를 보면 orderDate가 최종 매개 변수임을 알 수 있습니다. 평가 된 날짜를 해당 매개 변수로 전달해야합니다. – EmmyS