(php mysqli拡張機能を介して)使用しようとしている(半)単純なMySQLクエリがありますが、これを行う方法を完全に理解することはできません。
私のクエリは次のようになります
SELECT DISTINCT Col1 from `table1` where `col2`= ? and `col3`=?
UNION SELECT DISTINCT Col1 from `table2` where `col2`=(?) and `col3`=(?)
マージを処理したくないテーブルが2つあり、元の2つの準備された「?」を再利用したいだけです。テーブルに値を挿入するときにこれに対してできることがあることは知っていますが、ドキュメントを検索するための私の努力はこれまでのところ役に立たないことが証明されています。
私はこれを行うことができますか、そしてどのように?
アップデート
これが私のコードです
$query='SELECT DISTINCT enginesizecc FROM `table1` where year=? and vehicle_make= ? as UNION SELECT DISTINCT enginesizecc from `table2` WHERE year=(?) AND vehicle_make =(?)';
$stmt=$sql->prepare($query);
echo $sql->error; //I'm in debug mode
$blank='';
if(array_key_exists('year', $_POST)){
if(array_key_exists('make', $_POST)){
$stmt->bind_param('ss', $_POST['year'], $_POST['make']);
}
else $stmt->bind_param('ss', $_POST['year'], $blank);
}
elseif(array_key_exists('make', $_POST)){
$stmt->bind_param('ss', $blank, $_POST['make']);
}
else{
//if(array_key_exists('model', $_POST)) $stmt->bind_param('sss', $blank, $blank);
$stmt->bind_param('ss', $blank, $blank);
}
$stmt->execute();
$modelItem='';
$stmt->bind_result($modelItem);
$models=array();
while($stmt->fetch()){
$models[]=$modelItem;
}
sort($models);
return $models;
同じ変数を2回バインドできることは知っていますが、それはかなり非効率的なようです。