2016-12-20 7 views
-1

オプションからデータを送信しようとしましたが、このエラーが発生します"整合性制約違反:1048列 'marka' "データベースに選択したオプションを送信できません[nullエラーではありません]

この場合、$ 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. 
      } 

T

<?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> 

フルコード: http://paste.ofcode.org/3knA2Qe7ZtetLqrxrz3P76

エラー:メッセージと キャッチされない例外 'PDOException「SQLSTATE [23000]:整合性制約違反:1048列 'マルカ' ができませんadd.phpでnullになる:88

+0

「vEmri」と「vPic」はどこに定義されていますか? – Ghost

+0

あなたは '

+0

彼らは定義されて、私はちょうどここに投稿していない..だからオプションの名前を使用する? – IndigoMass

答えて

0

あなたのコードで見てください。

<option name="marka" id="marka">Zgjedh marken</option> 

これは間違っています。この行を修正して試してください。 (ここから名前とIDを削除し、このオプションで値を追加する必要があります)

希望すると、これが役に立ちます。

+0

それは動作しないと試してみました。完全なコードのリンク:http://paste.ofcode.org/38vhM97jS57c7mnBgG76JT6 エラー: 'SQLSTATE [23000]:整合性制約違反:1048' marka 'をnullにすることはできませんadd.php:88 – IndigoMass

+0

ドロップダウンの名前は 'marka'(