I'm updating an old application to php
and one of the crazy things is about one function which is getting an SLQ statement kept in the DB.. something like
field1 (SearchOrderLetterID), field2 (ShortName), field3 (SQLstatement) 1
When I'm getting the sql to execute, I'm getting the next error "Cannot access empty property"
Example of query:
SELECT CONVERT(VARCHAR(10),ClosingDate,101)
FROM dbo.Orders WHERE OrderID = @OrderID
Here is my code
public function getGenerateLetter($letterID, $orderID) {
$letterFields = SearchOrderLetterParameter::where('SearchOrderLetterID', $letterID)->get();
foreach($letterFields as $letterField) {
$key = str_replace('##', '', $letterField->ShortName);
if(preg_match('/@OrderID/', $letterField->SQLstatement))
$query = str_replace('@OrderID', $orderID, $letterField->SQLstatement);
$data[$key] = DB::select(DB::raw($query)); //here I'm getting the error
}
}
Each row in DB has a different SQL Statement
How can I get the result of the query?
You should give an alias for this expression
CONVERT(VARCHAR(10),ClosingDate,101)
in this manner:
CONVERT(VARCHAR(10),ClosingDate,101) AS ClosingDate