解决这个问题

时间:2016-10-01 23:59:05

标签: mysqli

$sql = "SELECT n_asiento FROM asiento WHERE estado='Libre' and n_asiento like '%".$clase."%'" and "ruta"="'".$ruta."'";

enter image description here

可以为我解决这个问题,请对撇号和蜱虫感到困惑,非常感谢你!

1 个答案:

答案 0 :(得分:0)

Like查询以错误的方式错过了变量周围的引号。

LIKE - LIKE运算符用于在列中搜索指定的模式。

<强>语法:

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;
  1. 您可以使用WHERE子句指定任何条件。
  2. 您可以将LIKE子句与WHERE子句一起使用。
  3. 您可以使用LIKE子句代替等号。
  4. 当LIKE与%符号一起使用时,它将像元字符搜索一样工作。
  5. 您可以使用AND或OR运算符指定多个条件。
  6. WHERE ... LIKE子句也可以与DELETE或UPDATE SQL命令一起使用来指定条件。
  7.   

    LIKE语句中允许的不同类型的模式:

    方法一:

    SELECT * FROM users
    WHERE name LIKE 's%';
    

    以下SQL语句选择名称开始的所有用户,并使用字母&#34; s &#34;:

    方法二:

    SELECT * FROM users
    WHERE name LIKE '%s';
    

    以下SQL语句选择名称结尾的所有用户使用字母&#34; s &#34;:

    方法三:

    SELECT * FROM users
    WHERE name LIKE '%kumar%';
    

    以下SQL语句选择名称包含模式的所有用户&#34; kumar &#34;:

    您的问题的解决方案

    您必须使用这样的查询。您错过了要在LIKE语句中附加的变量的引号。

    因此,您的查询应该像。

    $sql = "SELECT `n_asiento` FROM `asiento` WHERE `estado`='Libre' AND `n_asiento` LIKE '%".$clase."%' AND  `ruta` ='".$ruta."'";
    

    因此整个代码看起来像:

    <?php
    if(isset($_POST['cla']))
    {
        $ruta = $_POST['id'];
        $clase = $_POST['cla'];
        $servername = "localhost";
        $username="root";
        $password="root";
        $dbname="sct";
        $conn=mysqli_connect($servername,$username,$password,$dbname);
        if(!$conn)
        {
            die("Connection failed:".mysqli_connect_error());
        }
        else
        {
            $sql = "SELECT `n_asiento` FROM `asiento` WHERE `estado`='Libre' AND `n_asiento` LIKE '%".$clase."%' AND  `ruta` ='".$ruta."'";            
            $result = mysqli_query($conn,$sql);
            $hola = mysqli_num_rows($result);
            if($hola==0)
            {
                // Handle if the Count is Zero
            }
            else
            {
                // handle if the Count is not equal to zero
            }
        }        
    }
    ?>
    
      

    注意:首先将echo放入Select语句,然后通过退出来中断执行;然后复制回显的语句并将其放在DB的SQL中,然后检查插入中是否发生错误。如果没有错误发生,请删除echo并删除退出;

    以上示例的示例方案:

    如果帖子值似乎是这样的:

    $ruta = 10;
    $clase = test;
    

    如果您回复$sql语句,您应该这样做。

    "SELECT `n_asiento` FROM `asiento` WHERE `estado`='Libre' AND `n_asiento` LIKE 'test' AND  `ruta` ='10'"
    

    希望所有这些解释都可以用于理解目的,并且您可以更好地编码。

    快乐编码:)