1
下面我有一個模塊下拉菜單,它得到的模塊列表從數據庫的明顯它們顯示在下拉菜單:PHP腳本不插入值插入數據庫
$active = 1;
$sql = "SELECT ModuleId, ModuleNo, ModuleName FROM Module WHERE ModuleActive = ? ORDER BY ModuleNo";
$sqlstmt=$mysqli->prepare($sql);
$sqlstmt->bind_param("i",$active);
$sqlstmt->execute();
$sqlstmt->bind_result($dbModuleId, $dbModuleNo, $dbModuleName);
$modules = array(); // easier if you don't use generic names for data
$output = "";
$moduleHTML = "";
$moduleHTML .= '<select name="module" id="modulesDrop">'.PHP_EOL;
$moduleHTML .= '<option value="">Please Select</option>'.PHP_EOL;
while($sqlstmt->fetch())
{
$moduleno = $dbModuleNo;
$module = $dbModuleId;
$modulename = $dbModuleName;
$moduleHTML .= "<option value='".$module."'>" . $moduleno . " - " . $modulename . "</option>".PHP_EOL;
if (isset($_POST['module']) && ($_POST['module'] == $module)) {
$output .= "<p><strong>Selected Module:</strong> " . $moduleno . " - " . $modulename . "</p>";
}
}
$moduleHTML .= '</select>';
但問題我得到下面是當我嘗試插入選定的模塊到數據庫中,它無法做到這一點,因此ModuleId爲空。爲什麼它不能將選定的模塊插入數據庫?
if (isset($_POST['module'])) {
$_SESSION['module'] = $_POST['module'];
}
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$insertsql = "
INSERT INTO Session
(ModuleId)
VALUES
(?)
";
if (!$insert = $mysqli->prepare($insertsql)) {
// Handle errors with prepare operation here
}
$insert->bind_param("i", $_SESSION['module']);
$insert->execute();
if ($insert->errno) {
// Handle query error here
}
$insert->close();
}
的moduleId是INT場
無法或沒有發生?有沒有彈出錯誤或什麼都沒有發生。使用調試來測試預期的事情。 –
首先,你爲什麼要使用準備好的語句? – zeyorama
您可以在不使用預處理語句的情況下進行參數綁定嗎? –