私は2つの選択ドロップダウンボックスを持つフォームを持っていて、PHPを介してすべての値を返す2つのストアドプロシージャを選択に挿入します。しかし、最初の選択ボックスだけが表示され、2番目の選択ボックスは表示されないようです。 私は両方のストアドプロシージャをテストし、正常に動作します。mysqliを使用して2つのストアドプロシージャを呼び出す方法
<div class="form-group row">
<label class="col-sm-2 form-control-label">Name</label>
<div class="col-sm-10">
<select class="form-control" name="pokemonName" style="width:30%;">
<?php
require_once '../database/connection.php';
$sqlNames = "CALL sp_selectAllPokemonName";
$names = $con->query($sqlNames);
while ($name = $names->fetch_assoc()){
echo "<option value= '".$name['pokemonName']."'>".$name['pokemonName']."</option>";
}
// $names->close();
// $con->close();
?>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 form-control-label">Hour</label>
<div class="col-sm-10">
<select class="form-control" name="hour" style="width:30%;">
<?php
// query doesn't work here
require_once '../database/connection.php';
$sqlHours = "CALL sp_selectAllHour";
$hours = $con->query($sqlHours);
while ($hour = $hours->fetch_assoc()){
echo "<option value= '".$hour['Id']."'>".$hour['Id']."</option>";
}
?>
</select>
</div>
</div>
connection.php
<?php
require 'credentials.php';
include '../ChromePhp.php';
// Create connection
//$con = mysqli_connect($servername, $username, $password, $dbname); // Procedural
$con = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($con->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
ChromePhp::warn('something went wrong!');
}
?>
mysqliは、複数のセミコロンの分離されたクエリを一度にサポートします。 – Iceman
@Iceman、私はそれについて知っていますが、私にはこれは論理的にうまくいくはずです。なぜそうでないのか分かりません。手続き的にOOP mysqliに切り替える前にそれは働いた – ygongdev