powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Не работает функция sqlsrv_fetch_array
20 сообщений из 20, страница 1 из 1
Не работает функция sqlsrv_fetch_array
    #39327378
ProAnd2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер. Пытаюсь сделать вывод данных из таблицы MS SQL с помощью PHP. Запросы отправляются и выполняются, но вывести данные не получается. Я так понимаю функция sqlsrv_fetch_array вообще не работает. ЧТо делать?

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
<?php
function FormatErrors($errors){
	echo "Error information: ";

	foreach ($errors as $error){
		echo "SQLSTATE: ".$error['SQLSTATE']."";
		echo "Code: ".$error['code']."";
		echo "Message: ".$error['message']."";
	}
}

$serverName = "SERGEY-PC";
$conn = sqlsrv_connect($serverName);

if($conn === false)
{ 
	die(FormatErrors(sqlsrv_errors())); 
}

$stmt = sqlsrv_query($conn, "USE Фильмы SELECT Название FROM Фильмы");

while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
	echo $row['Название']; //Тут вообще ничего не выводится
}
 
if($stmt === false){
     die(print_r(sqlsrv_errors(), true));
} else echo 'Successfully';

sqlsrv_free_stmt($stmt); 
?>
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327380
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имя базы, пользователя, пароль - точно не нужны? http://php.net/manual/ru/function.sqlsrv-connect.php
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327383
ProAnd2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle, запросы не на выборку отлично выполняются, к примеру этот
Код: sql
1.
USE Фильмы INSERT INTO Фильмы(Название,ГодВыпуска,Сезон,Формат,Просмотр,Понравился) VALUES ('{$name}','{$year}','{$season}','{$format}','{$review}','{$like}')

или этот
Код: sql
1.
USE Фильмы DELETE FROM Фильмы

А вот с SELECT проблемы.
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327385
ProAnd2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle, даже точнее и SELECT возвращает Successfully, но данные не выводит.
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327390
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProAnd2014этот
Код: sql
1.
USE Фильмы DELETE FROM Фильмы

А что, в MsSQL так можно, сразу два запроса в один пихать или это синтаксис у них такой?

ProAnd2014данные не выводит.Можно начать с var_dump($stmt); и var_dump($row).
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327391
ProAnd2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleProAnd2014этот
Код: sql
1.
USE Фильмы DELETE FROM Фильмы

А что, в MsSQL так можно, сразу два запроса в один пихать или это синтаксис у них такой?

ProAnd2014данные не выводит.Можно начать с var_dump($stmt); и var_dump($row).Да, можно. Я в одном sql файле делал и 30 запросов подряд, выполнялись все.
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327395
ProAnd2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle,
Код: php
1.
var_dump($stmt);

возвращает вот такой ответ, что у SELECT, что у других запросов, значит SELECT работает.
Код: php
1.
resource(3) of type (SQL Server Statement) 

А вот такой код
Код: php
1.
2.
3.
4.
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
	echo $row['Название'];
}
var_dump($row);


возвращает
Код: php
1.
bool(false);
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327399
ProAnd2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle, даже
Код: php
1.
var_dump(sqlsrv_has_rows($stmt));

возвращает bool(false);
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327405
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProAnd2014Да, можно. Я в одном sql файле делал и 30 запросов подряд, выполнялись все.
не ищи приключений себе на задницу, по одному исполняй
use - вообще не нужен, ибо прямой путь-
Код: php
1.
2.
$connectionInfo = array( "Database"=>"mydb");
$conn = sqlsrv_connect( $serverName, $connectionInfo);



а приключения зарабатываешь, потому как в одной строке задавая несколько операторов - получаешь несколько resultset и в случае ошибки - с трудом определишь что сломалось

если вызовешь sqlsrv_next_result($stmt) - увидишь свой селект
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327413
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProAnd2014А вот такой код
Код: php
1.
2.
3.
4.
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
	echo $row['Название'];
}
var_dump($row);



возвращает
Код: php
1.
bool(false);

А что он должен напечатать ПОСЛЕ выхода из цикла while по Вашему мнению? ;-)
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327417
ProAnd2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle, если в тело цикла написать, результата никакого. Получается цикл не выполняется ни разу. А не выполняется он из-за того, что почему-то
Код: php
1.
var_dump(sqlsrv_has_rows($stmt));

FALSE (пишу его до цикла). Этот же запрос в самой СУБД выполняется, строки там есть. Получается, что у меня возвращается 0 строк таблицы, вместо 2-х, которые там есть. Тут получается даже дело не в sqlsrv_fetch_array, а в чем-то другом. А в чем может быть дело?
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327419
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да в том, что ПЕРВЫЙ запрос "USE Фильмы" (который, по сути, нафик не нужен) НИЧЕГО не возвращает. Вот это НИЧЕГО и вызывает проблемы.
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327422
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleДа в том, что ПЕРВЫЙ запрос "USE Фильмы" (который, по сути, нафик не нужен) НИЧЕГО не возвращает. Вот это НИЧЕГО и вызывает проблемы.
а чтобы это "ничего" пропустить - нужно вызвать sqlsrv_next_result($stmt)
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327423
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProAnd2014А в чем может быть дело?
я уже ответил - в говнокоде с USE
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327424
ProAnd2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle, ааа, понял. Сделал так и запрос заменил на
Код: sql
1.
SELECT * FROM Фильмы


Код: php
1.
2.
$connectionInfo = array("Database"=>"Фильмы");  
$conn = sqlsrv_connect($serverName, $connectionInfo);  


Выдает ошибку:
Код: plaintext
Error information: SQLSTATE: IMSSPCode: -47Message: An error occurred translating the connection string to UTF-16: Символ Юникода не имеет сопоставления в конечной многобайтовой кодовой странице.
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327427
ProAnd2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИзопропилProAnd2014А в чем может быть дело?
я уже ответил - в говнокоде с USEСпасибо, с функцией sqlsrv_next_result($stmt) все работает. Но как вы сказали это выходит говнокод. В сообщении выше проблема с кодировкой, ее где указывать при подключении к серверу?
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327430
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProAnd2014, да всё там же, в коннекшнинфо. Загляните в документацию, если не лень - там даже примеры есть. В том числе, и с кодировкой.
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327434
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProAnd2014,

ProAnd2014,

вам не повезло - кто-то умудрился базу по-русски назвать

в UTF-8 кодировке запишите название базы
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327437
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProAnd2014,

ну как вариант - один раз выполните на соединении одиночный "USE фильмы",

а потом все селекты и апдейты
...
Рейтинг: 0 / 0
Не работает функция sqlsrv_fetch_array
    #39327458
ProAnd2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил, vkle, огромнейшее Спасибо, добавил строчку "USE Фильмы" при удачном коннекте, а дальше уже идут простые запросы.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Не работает функция sqlsrv_fetch_array
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]