$sql = "SELECT n_asiento FROM asiento WHERE estado='Libre' and n_asiento like '%".$clase."%'" and "ruta"="'".$ruta."'";
可以为我解决这个问题,请对撇号和蜱虫感到困惑,非常感谢你!
答案 0 :(得分:0)
Like查询以错误的方式错过了变量周围的引号。
LIKE
- LIKE运算符用于在列中搜索指定的模式。
<强>语法:强>
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;
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'"
希望所有这些解释都可以用于理解目的,并且您可以更好地编码。
快乐编码:)