2017-09-20 1 views
-3

안녕하세요. 이 코드 섹션에 문제가 있습니다. 문제는 변경시 데이터베이스가 업데이트되지 않고 예외 메시지,이 코드에 남겨 둡니다. 원래 버전과 복사본이 있으므로 해당 프로브가 있음을 알 수 있습니다. 사본 및 나는 전에 언급 한 그 결과를 던지고, 나는 원래 버전을 찾고 또한 동일한 결과를 던져서 왜 그 이유를 이해하는 데 도움이되는지, 해결책이 있다면은을 부탁합니다. ?상태 업데이트를 원하지 않음

<?php 
function conectar(){ 
    $user="root";//usuario de base de datos 
    $pass="conto$o";//contraseña de acceso a base de datos 
    $server="localhost"; // Nombre del servidor 
    $db="hdesk"; // Nombre de la Base de datos 
    $con=mysql_connect($server,$user,$pass) or die ('Ha fallado la conexión: '.mysql_error()); 
    mysql_select_db($db,$con) or die ('No se pudo conectar a la base de datos: '.mysql_error()); 
    return $con; 
} 

>

양식 코드는 다음과 같다 : 다음과 같이

<html> 
 
    <head> 
 
     <meta charset="utf-8"> 
 
     <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 
     <title>addseguimiento</title> 
 
     <!-- Tell the browser to be responsive to screen width --> 
 
     <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> 
 
     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap.min.css" /> 
 
     <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> 
 
     <script type="text/javascript"> 
 
      function BuscaDatDep(Ext,Bus,Div,Acc){ 
 
       resul = document.getElementById(Div); 
 
       data="Acc=" + Acc + "&Bus=" + Bus + "&Ext=" + Ext; 
 
       document.getElementById('Res01').style.display = "block"; 
 
       ajax=NuevoAjax(); 
 
       ajax.open("POST", "_php/NewBusca.php",true); 
 
       ajax.onreadystatechange=function() { 
 
        if (ajax.readyState==4) { 
 
         resul.innerHTML = ajax.responseText 
 
        } 
 
       } 
 
       ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
 
       ajax.send(data) 
 
      } 
 
     </script> 
 
    </head> 
 
    
 
    <body> 
 
     <div class="modal-header"> 
 
      <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
 
      <h4 class="modal-title">Seguimiento</h4> 
 
     </div> 
 
     
 
     <div class="modal-body"> 
 
      <form role="form" method="post" action="system/registroseguimiento.php"> 
 
       <div class="row"> 
 
        <div class="col-lg-6"> 
 
         <div class="input-group"> 
 
          <span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span> 
 
          <input type="text" name="fechahora" class="form-control" value="<?php echo date("m/d/Y"); ?>" id="datetime" required="" placeholder="Fecha de seguimiento"> 
 
         </div> 
 
         &nbsp; 
 
        </div> 
 
        <div class="col-lg-6"> 
 
        </div> 
 
        &nbsp; 
 
       </div> 
 
       <div class="row"> 
 
        <div class="col-lg-6"> 
 
         <div class="input-group"> 
 
          <span class="input-group-addon"><i class="glyphicon glyphicon-tag"></i></span> 
 
          <input type="text" class="form-control" id="seguiticket" name="codigo" action="addseguimiento.php" placeholder="Ticket" required=""> 
 
         </div> 
 
        </div> 
 
        <div class="col-lg-6"> 
 
         <div class="input-group"> 
 
          <span class="input-group-addon"><i class="glyphicon glyphicon-shopping-cart"></i></span> 
 
          <?php 
 
           $conn=mysqli_connect("localhost","root","conto$o","hdesk"); 
 
           if ($conn)echo "" ; 
 
           else echo ""; 
 
           $consulta="select * from tienda ORDER BY NombreTienda"; 
 
           $resultado=mysqli_query($conn,$consulta); 
 
           echo "<select class='form-control' name='select3' id='storelist'>"; 
 
           while($lista=mysqli_fetch_array($resultado)) 
 
           { 
 
           echo "<option value='".$lista['NombreTienda']."'>".$lista['NombreTienda']."</option>"; 
 
           } 
 
           echo "</select>"; 
 
          ?> 
 
         </div> 
 
        </div> 
 
        &nbsp; 
 
       </div> 
 
       <textarea class="textarea" name="viejo" required="" placeholder="Descripci&oacute;n" style="width: 100%; height: 125px; font-size: 14px; line-height: 18px; border: 1px solid #dddddd; padding: 10px;"></textarea> 
 
       &nbsp; 
 
       <div class="row"> 
 
        <div class="col-lg-6"> 
 
         <div class="input-group"> 
 
          <span class="input-group-addon"><i class="glyphicon glyphicon-headphones"></i></span> 
 
          <?php 
 
           $conn=mysqli_connect("localhost","root","conto$o","hdesk"); 
 
           if ($conn)echo "" ; 
 
           else echo ""; 
 
           $consulta="select * from operador ORDER BY Nombres"; 
 
           $resultado=mysqli_query($conn,$consulta); 
 
           echo "<select class='form-control' name='select1'>"; 
 
           while($lista=mysqli_fetch_array($resultado)) 
 
           { 
 
            echo "<option value='".$lista['Nombres']."'>".$lista['Nombres']."</option>"; 
 
           } 
 
            echo "</select>"; 
 
          ?> 
 
         </div> 
 
        </div> 
 
        <div class="col-lg-6"> 
 
         <div class="input-group"> 
 
          <span class="input-group-addon"><i class="glyphicon glyphicon-heart"></i></span> 
 
          <select name="esta" class="form-control"> 
 
           <option>--- Estado ---</option> 
 
           <option>Abierto</option> 
 
           <option>En proceso</option> 
 
           <option>Solucionado</option> 
 
           <option>No solucionado</option> 
 
          </select> 
 
         </div> 
 
        </div> 
 
       </div> 
 
       &nbsp; 
 
       <div class="modal-footer"> 
 
        <button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar <span class="glyphicon glyphicon-remove"></span></button> 
 
        &nbsp; 
 
        <button type="submit" name="buscador" class="btn btn-success">Guardar <span class="glyphicon glyphicon-floppy-disk"></span></button> 
 
       </div> 
 
      </form> 
 
     </div> 
 
    </body> 
 
</html>

등록 코드가 다음과 같이

접속 코드는 :

<?php 
 
    include('conexionbd.php');//incluye el archivo php que contiene la conexion 
 
    $con=Conectar();//variable que almacena la conexión a la base de datos 
 
    $ticket =$_REQUEST['codigo']; 
 
    $FechaHora=$_REQUEST['fechahora'];//capturar datos del formulario 
 
    $descrip=$_REQUEST['viejo']; 
 
    $nombreOp=$_REQUEST['select1']; 
 
    $estado=$_REQUEST['esta']; 
 
    $tienda=$_REQUEST['select3']; 
 

 
    $query="insert into seguimiento VALUES ('$ticket','$FechaHora','$tienda','$descrip','$nombreOp','$estado')"; 
 
    $cierto=mysql_query($query, $con);//insertar 
 

 
    //preguntar si se insertó el dato 
 
    if(!$cierto){ 
 
     echo "No se ha podido guardar"; 
 
    }elseif ($estado == "Solucionado"){ 
 
     $editar="UPDATE caso SET EstadoCaso = 'Solucionado', Solucion = '$descrip' WHERE codigoticke = '$ticket'"; 
 
     $ciert=mysql_query($editar,$con);//insertar 
 
     header('Location: ../index.php'); 
 
    }elseif ($estado == "Abierto"){ 
 
     $editar="UPDATE caso SET EstadoCaso = 'Abierto', Solucion = '$descrip' WHERE codigoticke = '$ticket'"; 
 
     $ciert=mysql_query($editar,$con);//insertar 
 
     header('Location: ../index.php'); 
 
    }elseif ($estado == "En proceso"){ 
 
     $editar="UPDATE caso SET EstadoCaso = 'En proceso', Solucion = '$descrip' WHERE codigoticke = '$ticket'"; 
 
     $ciert=mysql_query($editar,$con);//insertar 
 
     header('Location: ../index.php'); 
 
    }elseif ($estado == "No solucionado"){ 
 
     $editar="UPDATE caso SET EstadoCaso = 'No solucionado', Solucion = '$descrip' WHERE codigoticke = '$ticket'"; 
 
     $ciert=mysql_query($editar,$con);//insertar 
 
     header('Location: ../index.php'); 
 
    }else{ 
 
     header('Location: ../index.php'); 
 
    } 
 
?>

월 2017 년 복사본이 코드가 완벽하게 일을 주목해야한다.

감사

+2

_ "예외 메시지에 남겨두고"_ - 그 메시지는 무엇입니까? –

+2

1. ** ** 비추천되고 안전하지 않은 ** mysql_ * 함수를 사용하지 마라. 그들은 PHP 5.5 (2013 년)부터 사용되지 않으며 PHP 7 (2015 년)에서 완전히 제거되었습니다. 대신에 MySQLi 또는 PDO를 사용하십시오. 2. ** 당신은 [SQL Injections] (http://php.net/manual/en/security.database.sql-injection.php) **에 대해 광범위하게 개방되어 있으며 [Prepared Statements] (http : /php.net/manual/en/mysqli.quickstart.prepared-statements.php). 쿼리를 연결하는 대신 위의 MySQLi 또는 PDO를 사용하는 경우 사용할 수 있습니다. –

+0

Magnus, 내가 개인화 한 메시지는 다음과 같습니다. echo "No se ha podido guardar"; – Jhon117

답변

-2

난 당신이 MySQL을 사용하는 경우는 필요하지 becuase $ 콘 변수를 제거하십시오 쿼리 를 실행할거야 경우에만 때 문제가 이해한다.

그리고 php (xampp) 버전이 5.5 이상이거나 최신 버전이면 PHP가 mysql 함수를 제거 했으므로 최신 버전이 실행되지 않습니다. 적절하게 변경하십시오.

만약 그렇다면 당신은 mysqli를 사용하여 코드에 사소한 변화가있을 필요가 있다고 제안한다면.

나는 두 가지 방법을 알려줄 것입니다. mysql을 위해 MySQL을위한

$cierto=mysql_query($query, $con); 
    $ciert=mysql_query($editar,$con); 

변화에

$cierto=mysql_query($query); 
    $ciert=mysql_query($editar); 

(PHP 5.5 버전이나 최신 버전 이후)

$cierto=mysql_query($query,$con); 
    $ciert=mysql_query($editar,$con); 

변화

에 (PHP는 이전 버전의 다음 5.5)
$cierto=mysqli_query($con,$query); 
    $ciert=mysqli_query($con,$editar); 

알려 주시기 바랍니다.

+0

매개 변수화 된 쿼리에 대해보기 – Strawberry

+0

1. mysql_query()에 대한 두 번째 매개 변수로 연결을 전달하는 것은 완벽하게 유효합니다. 2. mysql_query()를 mysqli_query()로 변경할 수없고, mysqli_ *을 mysqli_ *로 변경해야한다. 3. 두 API는 동일하지 않으므로 더 많은 것을 변경해야합니다. 4. mysqli_query()의 경우 링크 (연결)가 첫 번째가 아니라 두 번째가되어야한다. 5. PHP 5.5에서는 mysql_ *가 제거되지 않았습니다. PHP 5.5에서는 사용되지 않으며 PHP 7에서는 제거되었습니다. 6. @Strawberry가 지적했듯이 매개 변수화 된 쿼리 (a.k.a. Prepared Statements)를 사용해야합니다. –

관련 문제