首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Search - SQL语句

Search - SQL语句
EN

Stack Overflow用户
提问于 2011-12-07 06:53:54
回答 4查看 80关注 0票数 1

我正在尝试编写搜索函数,它从用户那里获取参数,并使用SQL语句从MySQL数据库中获取结果。

声明:

代码语言:javascript
复制
$title = $_GET['title'];    
$result = mysql_query("SELECT name, phone, email from person where name= '$title'");

这条语句的问题是,它只接受确切的名称;如果用户正在查找"David“,并且只输入"Da”,那么将找不到结果。

我需要一个语句,当用户输入部分名称时,显示所有与"Da“匹配的内容。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-12-07 06:56:10

您可以尝试通配符搜索,这并不是最优的,但应该是有效的:

代码语言:javascript
复制
$title = mysql_real_escape_string($_GET['title']);
$result = mysql_query("SELECT name, phone, email from person where name like '$title%'");
票数 1
EN

Stack Overflow用户

发布于 2011-12-07 06:57:35

使用LIKE条件

代码语言:javascript
复制
SELECT name, phone, email
FROM person
WHERE name LIKE '%$title%'

这将在name中搜索$title anywhere。

票数 1
EN

Stack Overflow用户

发布于 2011-12-07 07:08:02

使用PDO防止SQL注入攻击。Read it,学习它,编码它,体验它。

您需要使用通配符-%

代码语言:javascript
复制
<?php

$dbh = new PDO('mysql:host=xxx;port=xxx;dbname=xxx', $user, $pass );

$sql = "SELECT name, phone, email from person where name LIKE :username";
$sth = $dbh->prepare( $sql );
$sth->bindValue( ':username', '%' . $_GET['title'] . '%', PDO::PARAM_STR );

$sth->execute();
$result = $sth->fetchAll( PDO::FETCH_OBJ );

print_r( $result );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8408079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档