Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2016, 15:32   #1
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию Обычно разрешается одно использование адреса сокета

Доброго времени суток всем)
Вылазит такое предупреждение:
Warning: mysql_connect() [function.mysql-connect]: [2002] Обычно разрешается одно использование адреса сокета (протокол/се (trying to connect via tcp://localhost:3306) in C:\xampp\htdocs\archive\modules\dat a.php on line 36
Собственно только 2 php файла, иногда , через раз выдают такую ошибку. Один это создание страницы
PHP код:
<?php
    
require_once ('../modules/tools.php');    
    require_once (
'../modules/data.php');  
                                            
//подключаем модуль с функциями PHP
    
session_start();                                                                //стартуем сессию для передачи параметров между страницами  
  
    
$fileHandle fopen("Vydach_spis.html""r");    
   if((isset(
$_SESSION['not_vyp']))&($_SESSION['not_vyp']!=1)){    
    
//получаем хэндл открытого файла
    //парсируем шаблон страницы и заполняем информацией из БД
    //учитывая какая кнопка формы была нажата
    
while (!feof($fileHandle)) {                                                        //пока не конец файла
           
$buffer fgets($fileHandle4096);                                                //считываем строку из файла
        
if((strncmp($buffer,'<input',6)==0)and(stripos($buffer,'name="CurVyd"')!=false)) {    
               if(isset(
$_POST['CurVyd'])){
                   
$cuVyd $_POST['CurVyd'];
                   
               }else{
                   if(isset(
$_SESSION['cuVyd'])){
                       
$cuVyd =$_SESSION['cuVyd'];
                   }else{
                       
$cuVyd 0;
                   }
               }
               echo 
'<input  type="hidden" name="CurVyd" value="',$cuVyd,'" />';
                
$_SESSION['cuVyd'] = $cuVyd;                                  //записываем его во временную переменную сессии  
               
continue;
           }
                if((
strncmp($buffer,'<table',6)==0)and(stripos($buffer,'id="Table_vydach"')!=false)){                            //если нашли строку с заголовком комбобокса протоколов
            
            
echo $buffer
            while (
strncmp($buffer,'</tr',4)!=0){
                      
$buffer fgets($fileHandle4096);    
                     echo 
$buffer;
            }
            
            
$query="Select id_serii,nomer_vypuska,naimenovanie,id_vydachi from `выпуски` where id_vydachi>1";
            
$tableRowsVyd=querydeal($query);
                                                                            
//таблица обращения
            
If(!$tableRowsVyd){
                
$tableRowsVyd[0][0]="";
                
$tableRowsVyd[0][1]="";
                
$tableRowsVyd[0][2]="Выпуски пока не выдавались";
                
$tableRowsVyd[0][3]="";
                
$tableRowsVyd[0][4]="";
                
$_SESSION['not_vyd']=1;            
            }else{
                
$_SESSION['not_vyd']=0;
                
$tableRowsVyd=metaVyd($tableRowsVyd); 
            }
            
            
$_SESSION['tableRowsVyd'] = $tableRowsVyd;                                  //записываем его во временную переменную сессии  
               
$selectIndex $cuVyd;
            
$_SESSION['Cus_id_s']= $tableRowsVyd[$cuVyd][0]; 
            
$_SESSION['Cus_naim_v']= $tableRowsVyd[$cuVyd][2];  
            
//echo $selectIndex;
            
$begin='onclick="var f = document.forms[0];f.CurVyd.value = ';
            
$end='; f.submit();"';
            
printInTable($selectIndex,$tableRowsVyd,$begin,$end); 
        }
         if((
strncmp($buffer,'<input',6)==0)and((stripos($buffer,'name="Butt_chg"')!=false))or((stripos($buffer,'name="Butt_del"')!=false))){    
            If(isset(
$_SESSION['not_vyd'])){
                If(
$_SESSION['not_vyd']==1){
                    continue;
                }
            }  
         } 
         
        echo 
$buffer;    
      
    }
       }else{
     echo 
"<h3>В серии нет ни одного выпуска, выдача невозможна!</h3>";
    echo 
"<META http-equiv=\"REFRESH\" content=\"2; URL='../interfaces/sotrudnik.php'\">";   
 }  
       
    
fclose($fileHandle);                                                                //закрываем файл
    
return 0;    
?>
Другой удаление записи
PHP код:
<?php
    
    
require_once ('../modules/tools.php');    
    require_once (
'../modules/data.php');
    
session_start();
    
    
    if(isset(
$_SESSION['Cus_id_s'])){
            
$a=$_SESSION['Cus_id_s'];
            
$b=$_SESSION['Cus_naim_v'];
            
$query ="select id_vydachi FROM `archive`.`выпуски` WHERE `id_serii` = '".$a."' AND naimenovanie = '".$b."' ;";
            
$mas=querydeal($query);
            
$query ="UPDATE `archive`.`выпуски` SET `id_vydachi` = '1' WHERE `id_serii` = '".$a."' AND naimenovanie = '".$b."' ;"
              
queryinsert($query);
            
$c=$mas[0][0];
            
$query ="DELETE FROM `archive`.`выдача` WHERE `id_vydachi` = '".$c."';";
            
queryinsert($query);
            
$_SESSION['cuVyd']=0;
         
             echo 
"<META http-equiv=\"REFRESH\" content=\"0; URL='../specialist/vydach_spis.php'\">";  
   }else  echo 
"<META http-equiv=\"REFRESH\" content=\"0; URL='../specialist/vydach_spis.php'\">";  
 
?>
И data.php с функциями
PHP код:
<?php


define
("baseName",'archive',true);                                            //Объявляем константное 


function connectToBase(){                            
    
$host="localhost";
    
$baseName="archive";
    if(isset(
$_SESSION['level_access'])){ 
        switch (
$_SESSION['level_access']) {
                case 
'1'$log="sotr_a";$pass="sotr";break;
                case 
'2'$log="ppc";$pass="ppc";break; 
                case 
'3'$log="adm_a";$pass="admin";break; 
        } 
    }else{
$log="base_a";$pass="base";}
    
    
//unset($link_identifier);

line 36 -->>>    $link_identifier mysql_connect('localhost','adm_a','admin')OR die('Не могу создать соединение ');
    
//$link_identifier = mysql_connect($host,$log,$pass)OR die('Не могу создать соединение ');    //выполняем соединение с MySQL с текущими параметрами        
    
$query "SET NAMES cp1251";                                                                //устанавливаем кодировку по умлочанию Windows 1251 для кирилицы
    
    
MYSQL_QUERY($query,$link_identifier)OR die('Не могу выполнить запрос1');                        //выполнение запроса
    
mysql_select_db($baseName,$link_identifier)OR die('Не могу выбрать базу данных ');             //делаем активной БД
    
return $link_identifier;                                                                    //возвращаем идентификатор соединения
    
}
//---                connectToBase                ---

//---                connectClose                ---
/*
функция закрытия соединения PHP с базой MySQL
$link_identifier    строка        идентификатор соединения
*/
function connectClose($link_identifier){
    
mysql_close($link_identifier)OR die('Не могу закрыть соединение');                             //закрываем соединение с MySQL по идентификатору
}
//---                connectClose                ---


//простоая функция исполнения запроса с возвратом результата
function querydeal($query){                                                                     //входной параметр текст запроса
    
$link_identifier =connectToBase();                                                            //коннектимся к базе
    
$result MYSQL_QUERY($query)OR die('Не могу выполнить запрос');                            //выполнение запроса
    
$row mysql_fetch_row($result);                                                            //присваиваем переменной очередную строку из выборки
    
while ( $row ){                                                                                //пока есть строки в результате запроса
        
$lines[]=$row;                                                                            //формируем двумерный массив
        
$row mysql_fetch_row($result);                                                        //присваиваем переменной очередную строку из выборки
    
}                                                            
    
    
connectClose($link_identifier);                                                                //закрытие соединения с БД
    
if(isset($lines))                                                                            //если хотя бы одна строка найдена
        
return $lines;                                                                            //возвращаем массив строк
    
else{                                                                                        //иначе
        
return null;                                                                            //возвращаем null
    
}
}

//выплнение запроса  без возврата результата
function queryinsert($query){
    
$link_identifier =connectToBase();    
    
$result MYSQL_QUERY($query)OR die('Не могу выполнить запрос');                            //выполнение запроса
    
connectClose($link_identifier);                                                                //закрытие соединения с БД
    
return true;
}
    
?>
И хоть режте - не понимаю, что не так?
Порт 3306 занят mysqld.
Код писал не я(
Подскажите кто чем может, как это исправить?

Последний раз редактировалось Artsiom; 25.08.2016 в 15:36.
Artsiom вне форума Ответить с цитированием
Старый 26.08.2016, 09:50   #2
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Добавил слип на 1 секунду после каждого запроса к php удаления. Починилось всё.
Тему можно лочить)
Artsiom вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В каком порядке у вас обычно разложены методы и поля? Buron Hoise C# (си шарп) 12 08.08.2015 18:50
Использование ранее открытого сокета Foxeestyle Работа с сетью в Delphi 2 10.03.2013 22:37
Зависает проигрывание DVD (DSPack) обычно при перемотке Alexmpei Мультимедиа в Delphi 1 26.06.2012 13:24
Использование адреса как переменной Metr13 PHP 2 10.06.2012 11:06
Панель задач толще чем обычно! Altera Windows 2 21.05.2009 08:53