Php 带有内部联接SQL语句的准备语句中的SQL
我的查询正在运行,但我不知道如何将其放入准备好的语句中 这是我的问题(工作) 这是我准备好的陈述(我对准备好的陈述不熟悉,所以我知道的不多)Php 带有内部联接SQL语句的准备语句中的SQL,php,sql,inner-join,Php,Sql,Inner Join,我的查询正在运行,但我不知道如何将其放入准备好的语句中 这是我的问题(工作) 这是我准备好的陈述(我对准备好的陈述不熟悉,所以我知道的不多) 准备查询的要点之一是,可以为要替换为数据的零件使用参数。这有助于保护将变量连接到字符串中时不受影响的情况 由于第一个查询不需要参数,因此可以使用简单的->query()运行它,但第二个查询最好使用prepare和execute来运行 $params = [':subjcode'=>$subject_code]; $query = "SE
准备查询的要点之一是,可以为要替换为数据的零件使用参数。这有助于保护将变量连接到字符串中时不受影响的情况 由于第一个查询不需要参数,因此可以使用简单的
->query()
运行它,但第二个查询最好使用prepare和execute来运行
$params = [':subjcode'=>$subject_code];
$query = "SELECT P.first_name, P.middle_name, P.last_name, P.lrn, P.section
FROM students P INNER JOIN student_load C ON P.lrn = C.lrn
WHERE subject_code = :subjcode ";
if(isset($_POST["search"]["value"])){
$query .= 'AND ( lrn LIKE :s1
OR teacher LIKE :s2
OR sem LIKE :s3 )';
$params = array_merge($params,
[':s1'=> '%' . $_POST["search"]["value"] . '%'],
[':s2'=> '%' . $_POST["search"]["value"] . '%'],
[':s3'=> '%' . $_POST["search"]["value"] . '%']
);
}
$stmt = $connection->prepare($query);
$stmt->execute($params);
注意:我还在原始查询中缺少的:subcode“
后面添加了一个空格
使用占位符代替每个值。然后绑定值。例如,而不是像“%”这样的
。$\u POST[“search”][“value”]。%%“
使用像?
然后放入“%”。$\u POST[“search”][“value”]“%”
放入一个数组,并将该数组传递到execute
函数中。查询正在工作,但当我将其用于其余代码时,它不会显示任何结果。您好,这是一个新问题。请问一个新问题。顺便说一句,新代码中充满了简单的语法错误。我会将您的问题回滚到其原始状态。
function get_total_all_records()
{
include('../config.php');
//IM NOT SURE IF THE PROBLEM IS HERE($statement)
$statement = $connection->prepare("SELECT P.first_name, P.middle_name,
P.last_name, P.lrn, P.section
FROM students P
INNER JOIN student_load C ON P.lrn = C.lrn");
$statement->execute();
$result = $statement->fetchAll();
return $statement->rowCount();
}
$query = '';
$output = array();
// OR IF THE PROBLE IS HERE($query)
$query = "SELECT P.first_name, P.middle_name, P.last_name, P.lrn, P.section
FROM students P INNER JOIN student_load C ON P.lrn = C.lrn
WHERE subject_code = 12332654";
if(isset($_POST["search"]["value"])){
$query .= 'AND ( lrn LIKE "%'.$_POST["search"]["value"].'%"
OR teacher LIKE "%'.$_POST["search"]["value"].'%"
OR sem LIKE "%'.$_POST["search"]["value"].'%" )';
}
$params = [':subjcode'=>$subject_code];
$query = "SELECT P.first_name, P.middle_name, P.last_name, P.lrn, P.section
FROM students P INNER JOIN student_load C ON P.lrn = C.lrn
WHERE subject_code = :subjcode ";
if(isset($_POST["search"]["value"])){
$query .= 'AND ( lrn LIKE :s1
OR teacher LIKE :s2
OR sem LIKE :s3 )';
$params = array_merge($params,
[':s1'=> '%' . $_POST["search"]["value"] . '%'],
[':s2'=> '%' . $_POST["search"]["value"] . '%'],
[':s3'=> '%' . $_POST["search"]["value"] . '%']
);
}
$stmt = $connection->prepare($query);
$stmt->execute($params);