【问题标题】:php mysql - Double rows of same data is being inserted on post to mysql databasephp mysql - 在发布到 mysql 数据库时插入双行相同的数据
【发布时间】:2016-01-24 10:48:36
【问题描述】:

这是我正在运行的 php 脚本。基本上我要做的是使用 php、mysql 和 android 将图像和文本上传到 mysql 数据库。

if($_SERVER['REQUEST_METHOD']=='POST'){

    $image = $_POST['image'];
            $name = $_POST['name'];

    require_once('dbConnect.php');

    $sql ="SELECT id FROM volleyupload ORDER BY id ASC";

    $res = mysqli_query($con,$sql);

    $id = 0;

    while($row = mysqli_fetch_array($res)){
            $id = $row['id'];
    }

    $path = "uploads/$id.png";

    $actualpath = "http://simplifiedcoding.16mb.com/PhotoUploadWithText/$path";

    $sql = "INSERT INTO volleyupload (photo,name) VALUES ('$actualpath','$name')";

    if(mysqli_query($con,$sql)){
        file_put_contents($path,base64_decode($image));
        echo "Successfully Uploaded";
    }

    mysqli_close($con);
}else{
    echo "Error";
}

【问题讨论】:

  • 不太清楚你在这里问什么。请更清楚地说明您需要帮助的部分(例如,您希望某些代码执行它没有执行的操作,或者您的代码执行了您不希望它执行的操作)。
  • 我的问题:问题出在脚本运行两次还是mysqli_query一次插入双行?
  • 您在数据库中定义了任何触发器吗?你确定表格只提交一次吗?也许您可以发布该表格的代码?这段 PHP 代码是否是可能导致重复的更大脚本的一部分?到目前为止,您提供的内容并未解释重复条目。
  • 请注意,使用 INSERT 语句,您通常只会不断插入新记录,即使它是针对相同 ID 的。也许您真的想使用 UPDATE ... WHERE ID = $id ?
  • @Sherif 这行 $sql = "INSERT INTO volleyupload (photo,name) VALUES ('$actualpath','$name')";我希望它有一个进入数据库的条目,它有两个具有不同 ID 但具有相同数据的条目。例如:-id -1 104.197.53.207/webapp/10.jpeg anup 和 id -2 104.197.53.207/webapp/10.jpeg anup。

标签: php android mysql database


【解决方案1】:

您可能不想在不指定 ID 的情况下使用 INSERT。

我会替换这一行:

$sql = "INSERT INTO volleyupload (photo,name) VALUES ('$actualpath','$name')";

类似:

$sql = "UPDATE volleyupload SET photo = '$actualpath', " .
    " name = '$name' WHERE id = $id";

如果您在第一个查询中没有找到 id,则可能需要做更多的工作,因为您可能仍然想插入,但不要忘记随后也插入一个 ID 值。

【讨论】:

    猜你喜欢
    • 2013-02-01
    • 1970-01-01
    • 2014-03-27
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多