以下是我的代码。
我正在尝试使用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)))
答案 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)
您应该检查以下内容:
在BETWEEN语句中添加括号:
(submitdate BETWEEN :a AND :b)
检查日期格式
在内爆中为“AND”添加空格。