我得到的错误如下:(我也在回应查询语句)
注意:数组到字符串的转换在/home/fanati10/public_html/wp-content/themes/digital-pro/page-nflwranalyzer.php 第75行
注意:/home/fanati10/public_html/wp-content/themes/digital-pro/page-nflwranalyzer.php 第 79 行中数组到字符串的转换
*SELECT * FROM WR_TeamAnalyzer WHERE TMID = ?和 WKID = ?*
这是我的 php 文件
if(isset($_POST['submit']))
{
require_once( get_stylesheet_directory() . '/config/config.php' );
if(isset($_POST['check'])) {
$nflposs = "";
foreach($_POST['check'] as $val => $text_field) {
$nflposs.=$text_field.", ";
}
$nflpossint = rtrim($nflposs, ', ');
$nflposs = explode(',', $nflpossint);
$placeholders = rtrim(str_repeat('?, ', count($nflposs)), ', ');
$filter[] = "TMID = $placeholders";
$values[] = $nflpossint;
}
if(isset($_POST['wk'])) {
$wkid = "";
foreach($_POST['wk'] as $val => $text_field) {
$wkid.=$text_field.", ";
}
$wkidint = rtrim($wkid, ', ');
$wkid = explode(',', $wkidint);
$placeholders2 = rtrim(str_repeat('?, ', count($wkid)), ', ');
$filter[] = "WKID = $placeholders2";
$values[] = $wkidint;
}
$sql="SELECT * FROM WR_TeamAnalyzer WHERE " . implode(' AND ', $filter);
echo ($sql);
$selectStmt = $dbcon->prepare($sql);
$selectStmt->execute($values);
$rows = $selectStmt->fetchAll();
$tableContent = '';
foreach ($rows as $row){
$tableContent = $tableContent.'<tr>'.
最佳答案
当您在查询中使用 =
时,它需要一个字符串。但是您在参数中传递了一个数组 (values
)。我不确定您要在这里实现什么,但是如果您想 checkin 数组,请按以下方式更改代码中的这两行:
TMID IN $placeholders
WKID IN $placeholders2
您的最终查询应如下所示:
SELECT * FROM WR_TeamAnalyzer WHERE TMID IN (?) AND WKID IN (?)
关于php - MYSQL/PHP 两个多选下拉过滤器(PDO),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44383833/