Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Не работает функция sqlsrv_fetch_array / 20 сообщений из 20, страница 1 из 1
14.10.2016, 20:48
    #39327378
ProAnd2014
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает функция sqlsrv_fetch_array
Добрый вечер. Пытаюсь сделать вывод данных из таблицы 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
14.10.2016, 21:00
    #39327380
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает функция sqlsrv_fetch_array
Имя базы, пользователя, пароль - точно не нужны? http://php.net/manual/ru/function.sqlsrv-connect.php
...
Рейтинг: 0 / 0
14.10.2016, 21:08
    #39327383
ProAnd2014
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает функция sqlsrv_fetch_array
vkle, запросы не на выборку отлично выполняются, к примеру этот
Код: sql
1.
USE Фильмы INSERT INTO Фильмы(Название,ГодВыпуска,Сезон,Формат,Просмотр,Понравился) VALUES ('{$name}','{$year}','{$season}','{$format}','{$review}','{$like}')

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

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

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

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

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

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

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



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

если вызовешь sqlsrv_next_result($stmt) - увидишь свой селект
...
Рейтинг: 0 / 0
14.10.2016, 22:15
    #39327413
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает функция sqlsrv_fetch_array
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
14.10.2016, 22:23
    #39327417
ProAnd2014
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает функция sqlsrv_fetch_array
vkle, если в тело цикла написать, результата никакого. Получается цикл не выполняется ни разу. А не выполняется он из-за того, что почему-то
Код: php
1.
var_dump(sqlsrv_has_rows($stmt));

FALSE (пишу его до цикла). Этот же запрос в самой СУБД выполняется, строки там есть. Получается, что у меня возвращается 0 строк таблицы, вместо 2-х, которые там есть. Тут получается даже дело не в sqlsrv_fetch_array, а в чем-то другом. А в чем может быть дело?
...
Рейтинг: 0 / 0
14.10.2016, 22:27
    #39327419
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает функция sqlsrv_fetch_array
Да в том, что ПЕРВЫЙ запрос "USE Фильмы" (который, по сути, нафик не нужен) НИЧЕГО не возвращает. Вот это НИЧЕГО и вызывает проблемы.
...
Рейтинг: 0 / 0
14.10.2016, 22:34
    #39327422
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает функция sqlsrv_fetch_array
vkleДа в том, что ПЕРВЫЙ запрос "USE Фильмы" (который, по сути, нафик не нужен) НИЧЕГО не возвращает. Вот это НИЧЕГО и вызывает проблемы.
а чтобы это "ничего" пропустить - нужно вызвать sqlsrv_next_result($stmt)
...
Рейтинг: 0 / 0
14.10.2016, 22:35
    #39327423
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает функция sqlsrv_fetch_array
ProAnd2014А в чем может быть дело?
я уже ответил - в говнокоде с USE
...
Рейтинг: 0 / 0
14.10.2016, 22:37
    #39327424
ProAnd2014
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает функция sqlsrv_fetch_array
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
14.10.2016, 22:41
    #39327427
ProAnd2014
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает функция sqlsrv_fetch_array
ИзопропилProAnd2014А в чем может быть дело?
я уже ответил - в говнокоде с USEСпасибо, с функцией sqlsrv_next_result($stmt) все работает. Но как вы сказали это выходит говнокод. В сообщении выше проблема с кодировкой, ее где указывать при подключении к серверу?
...
Рейтинг: 0 / 0
14.10.2016, 22:52
    #39327430
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает функция sqlsrv_fetch_array
ProAnd2014, да всё там же, в коннекшнинфо. Загляните в документацию, если не лень - там даже примеры есть. В том числе, и с кодировкой.
...
Рейтинг: 0 / 0
14.10.2016, 22:56
    #39327434
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает функция sqlsrv_fetch_array
ProAnd2014,

ProAnd2014,

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

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

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

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


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