2017-09-20 67 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注入](http://php.net/manual/en/security.database.sql-injection.php)**开放,并且确实应该使用[准备好的语句](http:/ /php.net/manual/en/mysqli.quickstart.prepared-statements.php)而不是连接你的查询,如果你使用上面提到的MySQLi或PDO,可以使用它们。 –

+0

马格努斯,这个消息是我个性化的,它是以下内容:回声“没有se ha podido guardar”; – Jhon117

回答

-2

我了解你有问题的时候,只有当你要运行查询 请删除$ CON变量监守,当你使用MySQL的公司没有必要的。

请注意,如果您使用php(xampp)以上版本5.5或最新版本,那么它不会运行,因为php已经删除了mysql函数。所以相应地改变你。

如果我建议那么你需要使用mysqli,所以你的代码只有很小的变化。

我会告诉你两种方式。 为MySQL(PHP的早期版本,那么5.5)(后为PHP 5.5版或更新版本)

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

变化

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

为MySQL

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

变化

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

如果有任何问题,请让我知道。

+0

查看参数化查询 – Strawberry

+0

1.将连接作为第二参数传递给'mysql_query()'是完全有效的。 2.你不能只将'mysql_query()'改为'mysqli_query()',你必须将_all_'mysql_ *'-calls改为'mysqli_ *'。 3.这两个API不相同,所以你需要改变更多的东西。 4.对于'mysqli_query()',链接(连接)需要先去_first_,而不是像你的例子那样。 5.在PHP 5.5中没有删除'mysql_ *'。它在PHP 5.5中被弃用,并在PHP 7中被删除。6.正如@Strawberry指出的那样,你应该使用参数化查询(a.k.a. Prepared Statements)。 –