gpt4 book ai didi

用于多种条件的php sql语句正确方法

转载 作者:太空宇宙 更新时间:2023-11-03 11:08:54 25 4
gpt4 key购买 nike

我正在尝试编写一个返回sql语句的函数

喜欢

function get_sql($name=0,$date_start=0,$date_end=0)
{

$addQuery=" where 1=1";
if($name>0)
{
$addQuery .=" and name=".$name;
}


if($date_start>0)
{

$addQuery.=" and date >=".$date_start;
}

if($date_end >0)
{

$addQuery.=" and date<=".$date_end;
}

$query="select * from TABLE_ARTICLE".$addQuery;

return $query;
}

sorry guys for wrong syntax typing

我对这个功能有两个顾虑。

  1. 这是正确的方法吗?
  2. 当日期将以 01/03/2012 格式传递时,此功能是否有效,如您所见,如果两个日期都被选中,我希望结果介于第一个日期之后或结束日期之前?

我的意思是这是从日期中的 sql 获取数据的最佳方式吗?

感谢帮助

最佳答案

你最好使用 implode

function get_sql($name=0,$date_start=0,$date_end=0)
{

$whereClauses = array();
if($name>0)
{
$whereClauses[] = "name='$name'";
}

if($date_start>0)
{
$whereClauses[] = "date >='$date_start'";
}

if($date_end >0)
{
$whereClauses[] = "date<='$date_end'";
}

$query="select * from TABLE_ARTICLE";
if( !empty( $whereClauses ) )
{
$query.= ' WHERE ' . implode( ' AND ', $whereClauses );
}

return $query;
}

另请注意,我引用了您所有的值,因为它们似乎都不是整数值。

关于日期格式,MySQL 将无法识别您声明的格式。您将需要以 YYYY-MM-DD(或可能是 unix 时间戳)格式向 MySQL 提供日期。

关于用于多种条件的php sql语句正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9954353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com