Napisany przez: karol2005 9.06.2017, 11:12:09
Wysłam w pętli na zewnetrzny serwer MS SQL 2005 ok. 100 poleceń INSERT.
CODE
class Message {
private $conn_database;
public $user = "";
function __construct() {
include(INC_PATH.'mssql.inc.php');
$this->conn_database= $conn_mssql;
}
function __destruct() {
@sqlsrv_close($this->conn_database);
}
public function zapis_email($idMessage, $email, $adresZwrotny, $temat, $message, $cTime, $cUser, $odNazwa, $tutor = 0, $idp=0) {
$temat = str_replace("'", "''", $temat);
$message = str_replace("'", "''", $message);
$tsql = "INSERT INTO W_EMAIL (UIDEmail, DO, REPLAY, SUBJECT, MESSAGE, DATA_ZAPIS, LOGIN, PRIORYTET, STATUS, ILOSC_PROB, OD_NAZWA, TUTOR, IDP) VALUES ('$idMessage', '$email', '$adresZwrotny', N'$temat', N'$message', $cTime, '$cUser', 0, 0, 6, '$odNazwa', $tutor, $idp)";
$stmt = sqlsrv_query($this->conn_database, $tsql);
sqlsrv_free_stmt($stmt);
return true;
}
}
W wyniku tego następuje całkowia blokada dostępu do serwera, na którym stoi MS SQL, ping nic nie zwraca. Odblokowanie następuje samoistnie po pewnym czasie (ok. 2 min).
Serwer MS SQL pracuje, z innego komputera jest dostęp bezproblemowy.
Proszę o jakieś sugestie.
Karol
Napisany przez: nospor 9.06.2017, 11:17:19
1) uzywaj BBCODE dla kodow.
2) Kod co pokazales to tylko klasa. Musisz pokazac jak uzywasz tej klasy
Napisany przez: Pyton_000 9.06.2017, 11:28:05
Dodatkowo jeśli MSSql obsługuje (raczej powinien) to pakuj zamiast 100 insertów 1 skombinowany:
Kod
INSERT INTO table (cols..) VALUES (first), (second)...;
Napisany przez: karol2005 9.06.2017, 11:54:50
Wywołanie funkcji z klasy (pomijam definicje zmiennych):
CODE
require_once('../model/message.php');
$message = new Message();
foreach($_SESSION['idp_message'] as $idp) {
$message->zapis_email($idMessage, $email, $adresZwrotny, $temat, $message, $cTime, $cUser, $odNazwa, $tutor, $idp);
}