【问题标题】:foreign key does not update on cascade外键不更新级联
【发布时间】:2018-08-05 12:19:38
【问题描述】:

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

  1. 去了网络促销表
  2. 点击了关系视图按钮
  3. 之后我设置了图像中可见的所有选项

到目前为止,我已经解释了我所做的问题是我的 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["logouploader"]["tmp_name"], $dir.$filename);我的代码工作正常

但在那之后,当我尝试使用表单输入值以及上传的图像名称填充我的 webpromo 表时,它根本不会填充。 谢谢

【问题讨论】:

    标签: php jquery mysql ajax phpmyadmin


    【解决方案1】:

    朋友,你的想法有误,这并不意味着如果你使用 cascade,你的数据会被自动插入。

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

    【讨论】:

      猜你喜欢
      • 2014-01-17
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      • 2022-01-09
      • 2011-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多