我尝试从选项发送数据,并且我收到此错误"完整性约束违规:1048列' marka'不能为空'在"
任何人都可以帮助或解释为什么在这种情况下$ marka实际上并没有从所选选项中获取数据。
$marka = $_POST['marka'];
$stmt = $DB_con->prepare('INSERT INTO users(
vEmri,marka, vPic)
VALUES(:uemri,:umarka,:upic)');
$stmt->bindParam(':uemri',$vEmri);
$stmt->bindParam(':umarka',$marka);
$stmt->bindParam(':upic',$vPic);
if($stmt->execute())
{
$successMSG = "User added ...";
header("refresh:5;index.php"); // redirects image view page after 5 seconds.
}
Ť
<?php
try {
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname;charset=utf8",$dbuser,$dbpass,$dbo);
} catch (PDOException $e) {
echo $e->getMessage();
exit;
}
$sql = 'SELECT * FROM marka WHERE `status` = 1 ORDER BY marka_name ASC';
$q = $conn->query($sql);
$q->setFetchMode(PDO::FETCH_ASSOC);
?>
<tr>
<td><label class="control-label">Marka:</label></td>
<td><select name="marka" id="marka">
<option name="marka" id="marka">Zgjedh marken</option>
<?php while ($row = $q->fetch()){ ?>
<option value="<?php echo $row['marka_id']; ?>"><?php echo $row['marka_name']; ?></option>
<?php } ?>
</select>
</td>
</tr>
错误: 未捕获的异常&#39; PDOException&#39;消息&#39; SQLSTATE [23000]:完整性约束违规:1048列&#39; marka&#39;不能为空&#39;在add.php:88
答案 0 :(得分:1)
请看一下,您已在代码中写过。
<option name="marka" id="marka">Zgjedh marken</option>
但这是错误的,请更正此行并尝试。 (您应该从此处删除名称和ID,并且需要使用此选项添加值)
希望这会对你有所帮助。
答案 1 :(得分:0)
我不知道问题究竟是什么,所以我开始重新编写相同的代码。
我写了相同的代码,现在它可以工作了,我仍然无法弄清楚它为什么不能正常工作。
发布整个代码,因为我不知道问题是什么,我无法在这里定义。
编辑: 我认为这可能是服务器端错误或其他问题,看起来像是将多个变量发送到数据库的限制,现在它将$ zbritja变为NULL。