可以替换记录,但不能在php / mysql中插入记录

时间:2013-09-26 10:25:19

标签: php mysql sql replace insert

我在这里遇到一个非常奇怪的问题,因为我可以替换记录,但由于某种原因无法创建新记录。如果我创建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')");
            }
        }

我的表格如下:

enter image description here

2 个答案:

答案 0 :(得分:4)

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

是一项作业,因此它始终评估为true,您将无法访问else部分。

应该是:

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

答案 1 :(得分:0)

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

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

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