powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите как исправить sqlsrv_prepare, чтобы запись в таблицу была не в цикле.
9 сообщений из 9, страница 1 из 1
Подскажите как исправить sqlsrv_prepare, чтобы запись в таблицу была не в цикле.
    #39858331
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Подскажите как исправить sqlsrv_prepare, чтобы запись в таблицу была не в цикле.

Есть примерно такой INSERT :
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
$tsql = "INSERT INTO [table]
      (
         [data1],
        [data2]
      )  
      VALUES   
      (?, ?)";  
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC ) ) 
{
      $tparams = [
          $row['tdata1'],
          $row['tdata2']->format( 'Y-d-m H:i:s' )
     ];

    $tstmt = sqlsrv_prepare($conn, $tsql, $tparams);
    sqlsrv_execute($tstmt); 
    sqlsrv_free_stmt($tstmt);  
}



В этом примере запись идет в цикле.
Можно ли как то сделать присваивание параметров в цикле, а sqlsrv_execute вне цикла.

Например в mysql это выглядело бы так:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
$tsql = "INSERT INTO `table`
      (
         `data1`,
        `data2`
      )  
      VALUES   
      (?, ?)";  

$stmt = $mysqli->prepare($tsql)

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC ) ) 
{
        $tparams = [
            $row['tdata1'],
            $row['tdata2']->format( 'Y-d-m H:i:s' )
        ];

       $stmt->bind_param("ss",  $tparams);
}
 
$stmt->execute();


То есть, чтобы был только один sql запрос.
...
Рейтинг: 0 / 0
Подскажите как исправить sqlsrv_prepare, чтобы запись в таблицу была не в цикле.
    #39858345
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hopfen_Artur,
скорее всего Вам нужно задать вопрос здесь
...
Рейтинг: 0 / 0
Подскажите как исправить sqlsrv_prepare, чтобы запись в таблицу была не в цикле.
    #39858346
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iiyama,

за дублирование темы тут не банят?)
...
Рейтинг: 0 / 0
Подскажите как исправить sqlsrv_prepare, чтобы запись в таблицу была не в цикле.
    #39858347
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Вы из какого-то скриптового языка пытаетесь писать в MySql и задаете вопрос на форуме по MSSQL? А почему не на форуме молодых домохозяек?
...
Рейтинг: 0 / 0
Подскажите как исправить sqlsrv_prepare, чтобы запись в таблицу была не в цикле.
    #39858351
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич,

ну просто у них официальная документация на сайте
https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-prepare?view=sql-server-2017

думал можно тут.
...
Рейтинг: 0 / 0
Подскажите как исправить sqlsrv_prepare, чтобы запись в таблицу была не в цикле.
    #39858352
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а mysql это для примера, запись нужна в mssql
...
Рейтинг: 0 / 0
Подскажите как исправить sqlsrv_prepare, чтобы запись в таблицу была не в цикле.
    #39858355
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hopfen_Arturа mysql это для примера, запись нужна в mssqlДа какая разница куда если вопрос про откуда? Сервер сам себе запросы не посылает и не организовывает их генерацию и привязку к клиентским параметрам. Ищите как в используемом вами средстве разработки организована работа с передачей параметров в запросы. Это все на клиентской стороне, сервер тут вообще не при делах.
...
Рейтинг: 0 / 0
Подскажите как исправить sqlsrv_prepare, чтобы запись в таблицу была не в цикле.
    #39858367
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov, ну человек просто интересуется как bulk'ом вставлять из PHP в ms sql...
...
Рейтинг: 0 / 0
Подскажите как исправить sqlsrv_prepare, чтобы запись в таблицу была не в цикле.
    #39858592
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sqlsrv_prepare подготавливает (что не удивительно) запрос, а не исполняет. Исполнением занимается например sqlsrv_execute и без цикла вы можете только делать так:

VALUES (?, ?), (?, ?), (?, ?), (?, ?), (?, ?), (?, ?), (?, ?), (?, ?), (?, ?), (?, ?), (?, ?), (?, ?), (?, ?), (?, ?), (?, ?)...............

и в sqlsrv_prepare передавать все ваши значения
иначе - цикл
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите как исправить sqlsrv_prepare, чтобы запись в таблицу была не в цикле.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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