在我的下面的PHP代码中,学生名单和姓名作为输入,学生地址和标记将根据它显示。但只有我只提供1个输入时代码才有效。
<?php
if($_SERVER['REQUEST_METHOD']=='GET'){
$rollno = $_GET['rollno'];
$name = $_GET['name'];
require_once('dbConnect.php');
$sql = "SELECT * FROM colleges WHERE rollno='".$rollno."'" and name='".$name."'";
$r = mysqli_query($con,$sql);
$res = mysqli_fetch_array($r);
$result = array();
array_push($result,array(
"address"=>$res['address'],
"marks"=>$res['marks']
)
);
echo json_encode(array("result"=>$result));
mysqli_close($con);
}
答案 0 :(得分:0)
替换$sql = "SELECT * FROM colleges WHERE rollno='".$rollno."'" and name='".$name."'";
要
"SELECT * FROM colleges WHERE rollno='".$rollno."' and name='".$name."'";
答案 1 :(得分:0)
$ sql =&#34; SELECT * FROM学院WHERE rollno =&#39;&#34;。$ rollno。&#34;&#39;&#34;和姓名=&#39;&#34;。$ name。&#34;&#39;&#34;;
更正:
$ sql =&#34; SELECT * FROM Colleges WHERE rollno =&#39;&#34;。$ rollno。&#34;&#39;和姓名=&#39;&#34;。$ name。&#34;&#39;&#34;;
但为了更好,你应该使用准备好的陈述 示例
$link = mysqli_connect("localhost", "my_user", "my_password", "db_name");
$query = "SELECT * FROM colleges WHERE rollno=? AND name=?";
$params = array($rollno,$name);
mysqli_prepared_query($link,$query,"ss",$params)
答案 2 :(得分:0)
检查并确保代码中的$ sql查询行正确,因为它在您的问题中不正确。
$sql = "SELECT * FROM colleges WHERE rollno='".$rollno."'" and name='".$name."'";
应该是
$sql = "SELECT * FROM colleges WHERE rollno='" . $rollno . "' and name='" . $name ."'";
或使用单引号提高性能:
$sql = 'SELECT * FROM colleges WHERE rollno = "' . $rollno .'" and name= "' . $name ."';
其次,你的$ rollno的数据类型是什么,如果它不是字符串,那么考虑删除它周围的单引号。
第三,确保两列都是rollno,name一直都有变量,正确的查询,否则你都会得到一个Null结果。
最后,我强烈建议您下次使用pdo及其准备好的声明。