我有一对单选按钮,我想以bit
的形式将其值插入我的数据库。以下是相同的HTML代码。
<form id="Form" method="post" class="overlay" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" >
<input type="hidden" id="Keyy" name="key" value="">
<label for="JRadioYes">Active? Yes</label> <input type="radio" id="JRadioYes" name="activeradio"<?php if (isset($ActiveValue) && $ActiveValue == "yes") echo "checked='checked' "; ?>value="yes">
<label for="JRadioNo">No</label> <input type="radio" id="JRadioNo" name="activeradio"<?php if (isset($ActiveValue) && $ActiveValue == "no") echo "checked='checked' "; ?>value="no">
<input type="submit" id="submitter" name="sub" value="Submit!" onclick="decider(this)">
</form>
以下是用于插入数据库的PHP代码
// Check if radio is submitted
if (isset ( $_POST ["activeradio"]))
{
//Extract values from $_POST and store in variables
$select_radio = $_POST ["activeradio"];
if ($select_radio == "yes") {
$active_status = true;
//I also tried assigning 1 instead of true
}
if ($select_radio == "no") {
$active_status = false;
//I also tried assigning 0 instead of false
}
if($_POST["key"] == "update")
{
try
{
echo "<script type='text/javascript'>
alert('$active_status');
</script>";
$JobInt = intval($JobTypeID);
$stmt = sqlsrv_query ( $conn, 'EXEC spEditThisJobType @Active = ?', array (
$active_status
) );
}
catch(Exception $e)
{
echo "Error :". $e;
}
if($stmt != null)
{
echo "<script type='text/javascript'>alert('Successfully Updated!$stmt');
</script>";
}
}
}
我能够获得成功更新的警报,但我也得到了资源#6错误。此外,数据库也不会更新。
我在这里做的错误是什么?请指导我。提前谢谢。
答案 0 :(得分:1)
查看sqlsrv_query
的文档 - 它返回一个资源对象,而不是查询的结果。
因此,当您回显"Successfully Updated!$stmt"
时,资源$stmt
将转换为其字符串表示形式 - Resource #6
。
因此,您需要从回显中移除$stmt
,或对资源执行某些操作,例如使用sqlsrv_fetch_array
读取数据。