簡體   English   中英

插入不工作外鍵PHP

[英]INSERT INTO is not working foreign key php

檢查“ if”是否有效,但值未更新到數據庫中。 怎么了?
我認為代碼是正確的,它可以確認插入成功。 外鍵是emp_id,它引用名為empresa(idempresa)的表中的主鍵。

    // get post from other file
      @$pegar = $_POST['postempresa'];
      $q = " SELECT idempresa FROM empresa WHERE idempresa = $pegar " ;


      if (isset($_POST['submit'])) {
        // Connect to the database
        $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);




        // Grab the medida data from the POST


        $fk_empresa = mysqli_real_escape_string($dbc, trim($_POST['chaveestrangeira']));


        $prato = mysqli_real_escape_string($dbc, trim($_POST['f_prato']));
        $medida = mysqli_real_escape_string($dbc, trim($_POST['f_medida']));
        $preco = mysqli_real_escape_string($dbc, trim($_POST['f_preco']));
        $pessoas = mysqli_real_escape_string($dbc, trim($_POST['f_pessoas']));
        $categoria = mysqli_real_escape_string($dbc, trim($_POST['f_categoria']));
        $obs = mysqli_real_escape_string($dbc, trim($_POST['f_obs']));
        $foto = mysqli_real_escape_string($dbc, trim($_FILES['f_foto']['name']));
        $foto_type = $_FILES['f_foto']['type'];
        $foto_size = $_FILES['f_foto']['size']; 




        if (!empty($prato) && !empty($medida) && !empty($preco) && !empty($pessoas) && !empty($categoria) ) {

          if ((($foto_type == 'image/gif') || ($foto_type == 'image/jpeg') || ($foto_type == 'image/pjpeg') || ($foto_type == 'image/png')) && ($foto_size > 0) && ($foto_size <= GW_MAXSIZECARD)) {
            if ($_FILES['f_foto']['error'] == 0) {
              // Move the file to the target upload folder
              $target = GW_UPCARD . $foto;
              if (move_uploaded_file($_FILES['f_foto']['tmp_name'], $target)) {
                // Write the data to the database


                $query = 

                "INSERT INTO cardapio SET

                 emp_id = '$q',
                 prato = '$prato',
                 medida = '$medida',
                 preco = '$preco',
                 pessoas = '$pessoas',
                 categoria = '$categoria',
                 obs = '$obs',
                 foto = '$foto'


                 ";

                mysqli_query($dbc, $query);

                echo mysql_error();

                // Confirm success with the user
                echo '<p>Cardapio enviado!</p>';
                echo '<p><strong>ID EMPRESA</strong> ' . $fk_empresa . '<br />';
                echo '<p><strong>prato:</strong> ' . $prato . '<br />';
                echo '<strong>Medida:</strong> ' . $medida . '<br />';
                echo '<strong>Preço:</strong> ' . $preco . '<br />';
                echo '<strong>Categoria:</strong> ' . $categoria . '<br />';
                echo '<strong>Obs:</strong> ' . $obs . '<br />';
                echo '<img src="' . GW_UPCARD . $foto . '" alt="Score image" /></p>';
                echo '<p><a href="index.php">Voltar para admin</a></p>';

                // Clear the medida data to clear the form
                $prato = "";
                $medida = ""; 
                $preco = "";
                $pessoas = "";
                $categoria = "";
                $obs = "";
                $foto = "";



                mysqli_close($dbc);

              }
              else {
                echo '<p class="error">Tivemos um erro no upload da imagem.</p>';
              }
            }
          }
          else {
            echo '<p class="error">A imagem precisa ter extensão GIF, JPEG, ou PNG e menor que ' . (GW_MAXSIZECARD / 1024) . ' KB.</p>';
          }

          // Try to delete the temporary screen shot image file
          @unlink($_FILES['foto']['tmp_name']);
        }
        else {
          echo '<p class="error">Por favor, preencha todos os campos.</p>';
        }
      }
    ?>

兩件事情。

您不執行查詢。 像這樣執行

$rec    = " SELECT idempresa FROM empresa WHERE idempresa = $pegar " ;
$result =   mysqli_query($rec);
if($result){
    $row    =   myqsli_fetch_assoc($result);
    $q      =   $row['idempresa'];
}else{
    $q = '';
}

現在另一件事是您的插入查詢完全錯誤。 它不使用set關鍵字。 這樣使用

$query = "INSERT INTO cardapio 
            (emp_id ,prato ,medida ,preco , pessoas , categoria , obs ,foto )
            VALUES
            ('$q','$prato','$medida','$preco','$pessoas','$pessoas','$categoria','$obs','$foto')";
mysqli_query($query);

CREATE TABLE IF NOT EXISTS empresaidempresa INT(10)無符號NOT NULL AUTO_INCREMENT, nomefantasia VARCHAR(255)NOT NULL, razaosocial VARCHAR(255)NOT NULL, cnpj VARCHAR(12)NOT NULL, cepemp VARCHAR(8)NOT NULL, estadoemp varchar(2)NOT NULL, empcidade varchar(255)CHARACTER SET utf8 NOT NULL, ruaemp varchar(255)NOT NULL, bairroemp varchar(255)NOT NULL, numeroemp varchar(255)NOT NULL, compemp varchar(20)NOT NULL, categoriaemp varchar(45)NOT NULL, logomarca varchar(64)NOT NULL, telefoneum varchar(20)NOT NULL, telefonedois varchar(20)NOT NULL, emailum varchar(255)NOT NULL, emaildois varchar(255)NOT NULL,主鍵( idempresa ))ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 9;

cardapio TABLE cardapio添加約束cardapio_ibfk_3 FOREIGN KEY( emp_id )參考empresaidempresa )啟用DELETE CASCADE啟用UPDATE CASCADE;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM