外键不会在级联

时间:2018-02-26 05:11:07

标签: php jquery mysql ajax phpmyadmin

我使用的是phpmyadmin 4.7.3版本。我在同一个数据库中创建了2个带有innoDB存储引擎的表,我希望使用级联自动更新外键,但它根本不起作用。在我的 dineOwnerUser 表中,我有一个id字段,它是 webpromo 表中的外键,其名称为ownerid。以下是我为使其成为外键所做的所有步骤。

  1. 转到webpromo表
  2. 点击关系视图按钮
  3. 之后我设置了图像中可见的所有选项
  4. in webpromo table i did this to make a forign key

    到目前为止,我已经解释了我所做的问题是我的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表时,它根本不会填充。 感谢

1 个答案:

答案 0 :(得分:0)

您的错误想法我的朋友并不意味着如果您使用级联,您的数据将自动插入。

实际使用的是,如果更新主键值,则会更新所有相应表中的外键值。 您必须编写单独的插入查询。