Ниже приведен код, с которым я не могу работать. Я знаю, что установил соединение с базой данных, но ничего не возвращает. Что я делаю не так?
$result = "SELECT * FROM images WHERE path = ?";
$params = array("blah");
$row = sqlsrv_query($conn, $result, $params);
$finished = sqlsrv_fetch_array($row);
if ($finished)
{
echo "blach";
}
Каково значение $ row после вашего звонка?
$ row пуста после запроса






Возможно, вам потребуется заменить файл ntwdblib.dll, как описано в страница mssql_connect () руководства php.net.
Стоит ли проверять, что запрос не возвращает ошибку?
$result = "SELECT * FROM images WHERE path = ?";
$params = array("blah");
$row = sqlsrv_query($conn, $result, $params);
if ( $row === false ) {
print_r(sqlsrv_errors());
}
Array ([0] => Array ([0] => IMSSP [SQLSTATE] => IMSSP [1] => -14 [code] => -14 [2]] => sqlsrv_query был передан недопустимый параметр. [Сообщение ] => В sqlsrv_query был передан недопустимый параметр.)) Это ошибка, которую он выдает. Ваше здоровье
странно .. какой тип столбца формирует images.path?
что произойдет, если вы сделаете $ params = array (array ('blah', SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_STRING (SQLSRV_ENC_CHAR), SQLSRV_SQLTYPE_VARCHAR ('max')));
Что делать, если вы не используете буквальное значение? Большинство Примеры MSDN используют переменные.
Я бы попробовал:
$result = "SELECT * FROM images WHERE path = ?"; $var = "blah"; $row = sqlsrv_query($conn, $result, array($var)); $finished = sqlsrv_fetch_array($row);
Если все существует и правильно, возможно, вы тестируете запрос без результатов?