Php 如何选择以字符串开头的MYSQL数据库的所有条目
我正在尝试选择在开始处包含特定字符串的所有db条目。这是我目前的代码:Php 如何选择以字符串开头的MYSQL数据库的所有条目,php,mysqli,Php,Mysqli,我正在尝试选择在开始处包含特定字符串的所有db条目。这是我目前的代码: $keyword=htmlspecialchars($\u POST[“keyword”]); $keyword=str_replace(“,”,$keyword); 如果($keyword!=“”){ $db=新数据库(“本地主机”、“根”、“测试”); $db->connect(); $query=“从用户名为“”的登录名中选择*。$keyword。“%”; $res=$db->execCommand($query);
$keyword=htmlspecialchars($\u POST[“keyword”]);
$keyword=str_replace(“,”,$keyword);
如果($keyword!=“”){
$db=新数据库(“本地主机”、“根”、“测试”);
$db->connect();
$query=“从用户名为“”的登录名中选择*。$keyword。“%”;
$res=$db->execCommand($query);
$res=mysqli\u fetch\u assoc($res);
如果($res[“username”]!=“”){
echo json_编码(数组_值($res));
}
$db->disconnect();
}
它工作正常,但array/json只包含一个db条目
有人知道如何修复它吗?首先,您只需要调用
$res=mysqli\u fetch\u assoc($res)代码>一次,因此只返回一行
第二,您正在用第一行的数组覆盖$res
结果集,因此如果您试图读取更多行,您将遇到问题
您需要添加while循环并为变量指定唯一名称:
$keyword = htmlspecialchars($_POST["keyword"]);
$keyword = str_replace(" ","",$keyword);
if($keyword != ""){
$db = new Database("localhost","root","","test");
$db->connect();
$query = "SELECT * FROM login WHERE username LIKE '".$keyword."%'";
$res = $db->execCommand($query);
while($row = mysqli_fetch_assoc($res)) {
if($row["username"] != ""){
echo json_encode(array_values($row));
}
}
$db->disconnect();
}
真的非常感谢你:)