-1

我在这里遇到了一个非常奇怪的问题,因为我可以替换记录但由于某种原因无法创建新记录。如果我创建一个 id = 2hdfhh4 的专辑,然后提交一个具有相同 id 的专辑,详细信息将得到更新。如果我尝试发布新专辑没有任何反应,我什至没有收到任何错误?

    include("connect.php");
    $photostring = implode(',',$photos);
    $albumname = htmlspecialchars($albumname);

        $sqlA = <<<SQL
        SELECT *
        FROM `albumorders`
        WHERE albumid = '$albumid' 
        LIMIT 1
    SQL;

    if(!$resultA = $db->query($sqlA)){
        die('There was an error running the query [' . $db->error . ']');
    }
    while($rowA = $resultA->fetch_assoc()){
        if ($albumid = $rowA['albumid']){
            mysqli_query($db,"UPDATE albumorders SET `albumid`='$albumid',`albumname`='$albumname',`imagesordered`='$photostring' WHERE `albumid`='$albumid'");
            }
            else {
                mysqli_query($db,"INSERT INTO albumorders (`albumid`,`albumname`,`imagesordered`) VALUES ('$albumid','$albumname','$photostring')");
            }
        }

我的桌子看起来像这样:

在此处输入图像描述

4

2 回答 2

4
if ($albumid = $rowA['albumid']){

是一个任务,所以它总是评估为true,你不会得到这个else部分。

它应该是:

if ($albumid == $rowA['albumid']) {
于 2013-09-26T10:27:54.997 回答
0

在这里,您正在仔细检查该值。

SQL 查询将检查带有 $albumid 的行是否可用。

所以,你可以做的是你可以直接检查sql结果。如果 sql 结果可用,则更新行,否则将数据插入表中...

于 2013-09-26T10:47:58.880 回答