PHP与SQL Server(请不要使用MySQL)-在WHERE子句中选择带有LIKE的语句

PHP与SQL Server(请不要使用MySQL)-在WHERE子句中选择带有LIKE的语句,php,sql,sql-server,Php,Sql,Sql Server,我讨厌PHP,但我必须这样做。在过去的两天里,我一直在寻找一种简单的方法来编写一个带有LIKE子句的SQL Select,其中参数是从表单上的lname输入文本传递的。现在,它必须是sqlserver,而不是MYSQL 这就是我到目前为止所做的 function getActorDetailsLnameOnly($lname) { // the SQL query to be executed on the database $query = "select NameF

我讨厌PHP,但我必须这样做。在过去的两天里,我一直在寻找一种简单的方法来编写一个带有LIKE子句的SQL Select,其中参数是从表单上的
lname
输入文本传递的。现在,它必须是
sqlserver
,而不是
MYSQL

这就是我到目前为止所做的

    function getActorDetailsLnameOnly($lname) {
    // the SQL query to be executed on the database

    $query = "select NameFirst, NameLast, Age, Gender from actor where NameLast like '%$lname%'";

    return executeQuery($query);
}
index.php上,我写了以下内容:

if ((!empty($_REQUEST['lname'])) and ( empty($_REQUEST['age']) and ( empty($_REQUEST['gender'])))) {

        $lname = (string) $_GET['lname'];

        $sql = getActorDetailsLnameOnly($lname);
        foreach ($sql as ...) {
            extract(...);
           ...

代码返回一个值,但它远远不正确。这就像在select语句中请求A,然后返回Z。我无法理解它

通过
$\u REQUEST['lname']
检查表单输入值,然后分配一个变量
$lname=(string)$\u GET['lname']。如果表单方法是POST,则
$\u请求['lname']
将具有该值,而
$\u GET['lname']
将为空。因此,
like
模式将是
'%%'
,这实际上是除
NULL
之外的所有内容

基本上,
$\u GET
用于GET
$\u POST
用于POST
$\u REQUEST
用于任何


尝试使用
$lname=(字符串)$\u请求['lname']

通过
$\u请求['lname']
检查表单输入值,然后分配变量
$lname=(字符串)$\u获取['lname']。如果表单方法是POST,则
$\u请求['lname']
将具有该值,而
$\u GET['lname']
将为空。因此,
like
模式将是
'%%'
,这实际上是除
NULL
之外的所有内容

基本上,
$\u GET
用于GET
$\u POST
用于POST
$\u REQUEST
用于任何


尝试使用
$lname=(字符串)$\u请求['lname']

发布您的测试用例。您是否编写了
executeQuery
?此实例中的Mysql和sqlserver将具有相同的语法;取决于您使用的驱动程序。我们还需要知道您正在查询什么以及返回什么。我正在使用PDO查询SQL Server,并且我正在尝试返回表中的每个值,其中姓氏(如我在姓氏中输入的%whatever%):另外,是的,我正在调用dbconn php文件中的executeQuery。发布您的测试用例。您是否编写了
executeQuery
?此实例中的Mysql和sqlserver将具有相同的语法;取决于您使用的驱动程序。我们还需要知道您正在查询什么以及返回什么。我正在使用PDO查询SQL Server,并尝试返回表中的每个值,其中姓氏(如%whatever%)输入姓氏:另外,是的,我正在调用dbconn php文件中的executeQuery。使用您的回复给了我一个好主意。在应用您的建议时,我还更改了SQL查询。现在,它就像一个符咒!新的查询是::$Query=“从NameLast类似“{$\u POST['lname']}%”的Actor中选择NameFirst、NameLast、Age、Gender”@dot3tech很高兴这有帮助。尽管使用您的回复给了我一个好主意,但请对输入进行清理。在应用您的建议时,我还更改了SQL查询。现在,它就像一个符咒!新的查询是::$Query=“从NameLast类似“{$\u POST['lname']}%”的Actor中选择NameFirst、NameLast、Age、Gender”@dot3tech很高兴这有帮助。但请对输入进行消毒