具有多个参数的PDO搜索查询

时间:2018-02-07 14:00:14

标签: php

以下是我的代码。

我正在尝试使用php pdo中的多个参数创建搜索查询....在单个查询中使用多个if else条件。

但是查询之间不会获取任何记录,我做错了什么?

Dim Query As String
Query = "INSERT INTO smartaccounts.basic_fee (class, term, amount) VALUES(?, ?, ?)"
command = New MySqlCommand(Query, MysqlConn)
command.Parameters.Add(New MySqlParameter("class", CType(CmbClass.SelectedValue.ToString, String)))
command.Parameters.Add(New MySqlParameter("term", CType(CmbTerm.SelectedValue.ToString, String)))
command.Parameters.Add(New MySqlParameter("amount", CType(TxtAmount.Text, String)))

2 个答案:

答案 0 :(得分:3)

您必须在implode()胶水字符串中添加额外的空格:

$sql .= ' WHERE ' . implode(' AND ', $where);

因为你可以:

"submitdate BETWEEN :a AND :bANDstatus = :status" // Bad query

Optionnaly,如果你有OR语句,你也可以用括号括起来,并测试你的数组是不是空的:

if (!empty($where)) {
   $sql .= ' WHERE (' . implode(') AND (', $where) . ')' ;
}

Will会给你:

"WHERE (submitdate BETWEEN :a AND :b) AND (status = :status)" // Good query

答案 1 :(得分:1)

您应该检查以下内容:

  1. 在BETWEEN语句中添加括号:

     (submitdate BETWEEN :a AND :b)
    
  2. 检查日期格式

  3. 在内爆中为“AND”添加空格。