Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 9

Ms sql 2012, php

08.06.2014, 12:28. Показов 1087. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день всем!

Помогите, пожалуйста! Никак не могу понять что нужно сделать и где что прописать
Суть: попросили помочь с дипломом, прогу уже накидал (delphi, mssql2012), но нужна еще простенькая веб-страничка, куда будут раз в месяц логиниться юзеры и вставлять показания счетчиков.

Так вот создал БД (всё не выкладываю, думаю незачем):
SQL
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
32
33
DROP DATABASE [db_ts];
GO
 
CREATE DATABASE [db_ts] COLLATE Cyrillic_General_CI_AS;
GO
 
USE [db_ts];
GO
 
EXEC sp_droplogin @loginame='user_ts'
EXEC sp_addlogin @loginame='user_ts', @passwd='user_ts123', @defdb='db_ts', @deflanguage='Russian'
EXEC sp_changedbowner 'user_ts'
--******************************************************************************
 
...
 
CREATE TABLE [Организации]
(
    [Код организации]                      INT IDENTITY (1, 1) PRIMARY KEY, 
    [Название]                             nvarchar(255) NOT NULL, 
    [Код адреса]                           INT REFERENCES [Адреса]([Код адреса]), 
    [Код категории]                        INT REFERENCES [Категории]([Код категории]), 
    [Наличие приборов учета отопления]     bit DEFAULT 0,  /* 0 - нет, 1 - есть */
    [Наличие приборов учета ГВС]           bit DEFAULT 0,  /* 0 - нет, 1 - есть */
    [Номер договора]                       nvarchar(100) NOT NULL DEFAULT '', 
    [Дата договора]                        DATE NOT NULL DEFAULT GETDATE(), 
    [Договор]                              varbinary(MAX) NULL, 
    [ИНН]                                  nvarchar(20) NOT NULL DEFAULT '', 
    [Телефон]                              nvarchar(15) NOT NULL DEFAULT '', 
    [Код пользователя]                     INT REFERENCES [Пользователи]([Код пользователя])
);
 
...
затем создаю простенькие php скрипты (все файлы в кодировке UTF-8):
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
config.php
<?php
    $hostname = "works-01";
    $serverName = $hostname . "\SQLExpress";
    $charset = "UTF-8";
    $dbname = "db_ts";
    $dbuser = "user_ts";
    $dbpassword = "user_ts123";
    $connectionInfo = array( "Database" => $dbname, "Characterset" => $charset, "UID" => $dbuser, "PWD" => $dbpassword );
    
    $conn = sqlsrv_connect( $serverName, $connectionInfo);
    if( $conn == false ) {
        echo "Connection could not be established.<br />";
        die( print_r( sqlsrv_errors(), true));
    }
?>
 
content.php
<?php
    include('config.php');
    include('debug.php');
    
    //$tsql = "SELECT name, phone FROM test1;";   <- Работает!
    $tsql = 'SELECT * FROM [Организации]';         <- Не работает :(
    
    $result = sqlsrv_query($conn, $tsql);
    
    if ($result === false) {
        echo " Error! ";
    }
    else {
        echo "Ok!\n";                                        <= при киррилице доходит до этого места
        $num_rows = sqlsrv_num_rows( $result );  <= но num_rows возвращает boolean :(
        if ($num_rows === false) {
            echo "Error num rows!\n";
        }
        else {
            echo $num_rows;
        }
    }
    
    while( $row = sqlsrv_fetch_array( $result ) ) {
        //echo $row['Название'] . ", " . $row['Телефон'] . "\n";
        echo mb_detect_encoding($row['Название']);
    }
    
    /* Free the statement and connection resources. */
    sqlsrv_free_stmt( $result );
    sqlsrv_close( $conn);
?>
Подскажите какая где должна быть кодировка? В какой кодировке создает MSSQL свои БД (не только содержимое полей, но и сами названия полей)?
Или ткните куда-нибудь где наиболее подробно расписано

Понимаю что первое что скажут "нафига названия полей на русском??", но так уж получилось, проблем раньше не было, здесь просто веб-страничка всё портит, а исправить/переименовать всю БД уже врядли успею
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.06.2014, 12:28
Ответы с готовыми решениями:

PHP & MySQL передача в запрос SQL значения переменной из PHP
Здравствуйте. Мне необходимо передать в SQL-запрос значение любой переменной. Например, мне нужно передать в качестве значения...

Создание временных данных в SQL с PHP или удаление данных из SQL по истечению времени
Пользователь вводит данные и они заносятся в SQL. Вопрос, как сделать, чтоб через, допустим, 10 мин удалялись эти данные? Добавлено...

Windows и Visual Studio 2012 не видит SQL Server 2012
Установил на чистый компьютер Windows 7, а затем Visual Studio 2012. Как известно, студия одновременно устанавливает и SQL Server. Так...

2
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
09.06.2014, 12:52
Цитата Сообщение от Packman83 Посмотреть сообщение
PHP
1
2
//$tsql = "SELECT name, phone FROM test1;"; * <- Работает!
$tsql = 'SELECT * FROM [Организации]';      <- Не работает :(
Я не знаком с синтаксисом майрасофта. Вы уверены, что таблицу нужно брать в квадратные скобки? В любом случае при ошибке, смотрите что вернул сервер http://www.php.net/manual/ru/f... errors.php
0
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 9
10.06.2014, 17:21  [ТС]
crautcher, спасибо за подсказку, довольно сложно таки отлаживать php скрипты оказывается, привык в дельфям)

вопрос в общем то снимается, каким-то образом это чудо заработало, кодировка как и раньше UTF-8, сам не пойму как и что получилось

а таблицы/поля да, берут в квадратные скобки, если там есть пробелы, по крайней мере все запросы в проге сделаны так, MS скобками выделяет имена БД, таблиц и полей, а кавычками/апострофами в основном значения полей, хотя можно и их использовать, просто глюки возможны
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.06.2014, 17:21
Помогаю со студенческими работами здесь

Где в SQL Server 2012 хранятся файлы c запросами (.sql)?
Я создал таблицы, и заполнил их с помощью кода, а не в ручную. Соответственно, у меня есть 2 файла .sql на выходе, которые я сохранил на...

Перенос баз из Sql 2000 и 2005 в Sql 2012
Добрый день, возникла необходимость переехать на новый сервер SQL, но столкнулся с трудностями. Как правильно перетащить базу? ...

Перевести код с SQL 2012 на SQL 2008
Надо перевести код с SQL 2012 на SQL 2008 WITH SalesMonth2007 AS ( SELECT MONTH(orderdate) AS monthno, SUM(val) AS...

Подключение базы sql 2012 к sql 2008
Уважаемые форумчане, возможно ли подсоединить базу sql 2012 к sql 2008?

SQL Server 2012 Management Studio Express не появляется служба SQL Server
Здравствуйте. Установил SQL Server Management Studio Express 2012 , необходимый для работы одной программы конфигурирования устройства. Там...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru