我使用的是phpmyadmin 4.7.3版本。我在同一个数据库中创建了2个带有innoDB存储引擎的表,我希望使用级联自动更新外键,但它根本不起作用。在我的 dineOwnerUser 表中,我有一个id字段,它是 webpromo 表中的外键,其名称为ownerid。以下是我为使其成为外键所做的所有步骤。
到目前为止,我已经解释了我所做的问题是我的webpromo表是完全空的,即使外键也没有自动更新。如果我错在这里,请指导我,我也发布我的代码,以防万一我在做一些错误的编码这里是我的PHP代码
<?php
session_start();
if(isset($_POST['recaptcha'])){
$secret = "************";
$response = $_POST['recaptcha'];
$remoteip = $_SERVER['REMOTE_ADDR'];
$url = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$response&remoteip=$remoteip");
$content = json_decode($url, TRUE);
if($content['success'] ==1){
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
$data = strtolower($data);
return $data;
}
$discount = test_input($_POST["discount"]);
$discountitem = test_input($_POST["discountitem"]);
$website = test_input($_POST["website"]);
$expirydate = test_input($_POST["expirydate"]);
$desc = test_input($_POST["desc"]);
$filename;
if(isset($_FILES['logouploader']['name'])){
$filename = basename($_FILES['logouploader']['name']);
$filename = test_input($filename);
}
$dir = "img/uploads/";
$ext = strtolower(pathinfo($_FILES['logouploader']['name'], PATHINFO_EXTENSION));
$allowed = array('jpeg','png' ,'jpg');
if(!in_array($ext,$allowed) ) {
echo "wrongext";
$uploadOk = 0;
exit;
}
if ($_FILES["logouploader"]["size"] > 600000) {
echo "large";
$uploadOk = 0;
exit;
}
$uploadOk = 1;
if ($uploadOk == 0) {
echo "Sorry";
exit;
}
if ($uploadOk == 1) {
move_uploaded_file($_FILES["logouploader"]["tmp_name"], $dir.$filename);
$servername = "localhost";
$username = "*****";
$password = "*****";
try {
$conn = new PDO("mysql:host=$servername;dbname=*********", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = "INSERT INTO webpromo (discount, dealitem, website, expirydate, description, logouploader) VALUES (?, ?, ?, ?, ?, ?)";
$statement = $conn->prepare($query);
$statement->execute(
array(
$discount,
$discountitem,
$website,
$expirydate,
$desc,
$filename
) );
$conn = null;
exit;
echo "done";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
}
}
if($content['success'] !=1){
echo "notok";
$conn = null;
exit;
}
$conn = null;
exit;
}
?>
注意:我在我的文件夹中获得的图像意味着什么 move_uploaded_file($ _ FILES [&#34; logouploader&#34;] [&#34; tmp_name&#34;],$ dir。$ filename); 我的代码工作正常
但之后,当我尝试使用表单输入值以及上传的图像名称填充我的webpromo表时,它根本不会填充。 感谢
答案 0 :(得分:0)
您的错误想法我的朋友并不意味着如果您使用级联,您的数据将自动插入。
实际使用的是,如果更新主键值,则会更新所有相应表中的外键值。 您必须编写单独的插入查询。