Почему массив параметров не подготовлен ??? Так странно, это ошибка в Sqlsrv Extenstion ??SQLSVR не правильно подготовил отчет
public $availableQueries = array("getOnlyCusips"=>"SELECT * FROM [THEDB] where [val] like '%?%' ",
"searchCusips"=>"SELECT * FROM [THEDB] where [val] = '?'");
function runQuery($query,$params){
$connection = new connect;
$conn = $connection->EstablishConnection();
$sql = $this->availableQueries[$query];
$params = explode(',',$params);
*/*************************BUG IN EXTENSION???, STR_REPLACE BAD FIX BELOW **************/*
if($query=="getOnlyCusips"){
$sql = str_replace("?",$params[0],$sql);
}
if($query=="searchCusips"){
$sql = str_replace("?",$params[0],$sql);
}
*/*************************BUG IN EXTENSION???, STR_REPLACE BAD FIX ABOVE**************/*
$stmt = sqlsrv_query($conn, $sql, ($params));
$returnObject=array();
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
array_push($returnObject,$row);
}
$connection->closeConnection();
return $returnObject;
}
В основном я пытаюсь поместить $ params в функцию sqlsrv_query для подготовки инструкций, но ее просто нет. Я должен сделать string_replace, чтобы заменить '?' с интересом. Я точно использую правильно отформатированный массив param = Array ("val1")
любые идеи кто-нибудь? Этот STR_REPLACE не будет работать в будущем, когда мне нужно вставить более 1 параметра
Режим угадывания (потому что я не знаю, что делает 'class connect' под капотом):' '' отмечает строковый литерал. Параметр не является строковым литералом. 'где [val] =?' и 'где [val] нравится? '(а затем вы должны добавить %% к фактическому параметру). – VolkerK