[英]INSERT INTO is not working foreign key php
The check 'if' works but the values are not updating into the database. 检查“ if”是否有效,但值未更新到数据库中。 what is wrong? 怎么了?
I think is the code is right, it confirms the sucess from the insert. 我认为代码是正确的,它可以确认插入成功。 The foreign key is emp_id that references the primary key from a table called empresa (idempresa). 外键是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>';
}
}
?>
Two things. 两件事情。
You are not executing query. 您不执行查询。 Execute it like this 像这样执行
$rec = " SELECT idempresa FROM empresa WHERE idempresa = $pegar " ;
$result = mysqli_query($rec);
if($result){
$row = myqsli_fetch_assoc($result);
$q = $row['idempresa'];
}else{
$q = '';
}
now the other thing is that your insert query is totally wrong. 现在另一件事是您的插入查询完全错误。 it does not use set keyword . 它不使用set关键字。 Use it like this 这样使用
$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 empresa
( idempresa
int(10) unsigned 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, PRIMARY KEY ( idempresa
) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ; CREATE TABLE IF NOT EXISTS empresa
( idempresa
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;
-- ALTER TABLE cardapio
ADD CONSTRAINT cardapio_ibfk_3
FOREIGN KEY ( emp_id
) REFERENCES empresa
( idempresa
) ON DELETE CASCADE ON UPDATE CASCADE; cardapio
TABLE cardapio
添加约束cardapio_ibfk_3
FOREIGN KEY( emp_id
)参考empresa
( idempresa
)启用DELETE CASCADE启用UPDATE CASCADE;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.