我不明白这个查询有什么问题。
例如:从表names中,我希望获得与字符串Hound匹配的所有记录,如hound、Hound 1.2.3、HoundChat、hound version 5.0.2.6、HOUND ver.7.4.4(1536)。
另外,我将从$nameid获得与表names中的列name相关联的字符串。
$files = mysql_query("SELECT * FROM names WHERE name LIKE '$nameid%'") or die(mysql_error());
$i=1; while($row=mysql_fetch_array($files)) {
echo "<a href=\"/files/$row[1]\>";
$i++;更新:我已经成功地使用了$nameid= substr($_ get‘’name‘,0,5);它只从变量中获得5个字符,并且适合我。
发布于 2015-09-26 18:02:40
尝试如下:
$files = mysql_query("SELECT * FROM names WHERE name LIKE '".$nameid."%'") or die(mysql_error());发布于 2015-09-26 18:03:34
从您的问题中,我假设$nameid是一个变量,它的值为hound。您只需要处理查询中不区分大小写的方面。
另外,您应该使用准备好的语句来防止sql注入,例如使用PDO。
$st = $db->prepare("SELECT * FROM names WHERE name COLLATE UTF8_GENERAL_CI LIKE ?");
$st->execute(array($nameid.'%'));请参见对语句COLLATE部分here的解释。
https://stackoverflow.com/questions/32800178
复制相似问题