PHP与SQL Server(请不要使用MySQL)-在WHERE子句中选择带有LIKE的语句
我讨厌PHP,但我必须这样做。在过去的两天里,我一直在寻找一种简单的方法来编写一个带有LIKE子句的SQL Select,其中参数是从表单上的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
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很高兴这有帮助。但请对输入进行消毒