从sql查询中设置int

时间:2015-05-11 13:20:56

标签: php mysqli

我正在尝试从sql查询中设置一个int值。在我的ios应用程序中,我可以为照片ID分配一个int值,存储它并检索它。如果我想用新的jpg覆盖照片但仍然使用现有的IdPh​​oto并因此使用相同的文件名,例如,问题就出现了。 1.JPG。我首先检查用户是否存在。如果是这样我更新照片(这是我需要设置IdPhoto的地方),否则我创建一张带有新ID的照片(工作正常)。

function uploadDetails($Name, $Location, $photoData, $IdPhoto) {

    $uploads = query("SELECT Name, IdPhoto FROM users WHERE Name = '%s'  limit 1",$Name);


    if (count($uploads['result'])>0) {

        $result = query("UPDATE users SET Name='$Name', Location='$Location', IdPhoto='$IdPhoto' WHERE Name = '%s'", $Name);

    //Need to define IdPhoto from users table

        if (move_uploaded_file($photoData['tmp_name'], "icons/".$IdPhoto.".jpg")) {

            thumb("icons/".$IdPhoto.".jpg", 180);

                    //I can print out confirmation to the iPhone app
                    print json_encode(array('$IdPhoto'=>$IdPhoto));
         } else {
                    //print out an error message to the iPhone app
                    errorJson('Upload on server problem');
        };

    }
    else {
        if ($photoData['error']==0) {

         $result = query("INSERT INTO users(Name, Location) VALUES('%s','%s')", $Name, $Location);


            if (!$result['error']) {

                // fetch the active connection to the database (it's initialized automatically in lib.php)
                global $link;

                // get the last automatically generated ID in the table
                $IdPhoto = mysqli_insert_id($link);

                if (move_uploaded_file($photoData['tmp_name'], "icons/".$IdPhoto.".jpg")) {

                    thumb("icons/".$IdPhoto.".jpg", 180);

                    print json_encode(array('successful'=>1));
                } else {

                    errorJson('Upload on server problem');
                };

            } else {
                errorJson('Upload database problem.'.$result['error']);
            }

         }
    }
}

所以问题出在代码的第一部分,我需要更新照片,但仍然使用相同的IdPh​​oto

修改

我需要的代码如下:

$getID = mysqli_fetch_assoc(mysqli_query($link, "SELECT IdPhoto FROM users WHERE Name = '$Name'"));
$IdPhoto = $getID['IdPhoto'];

虽然我最终得到了答案,但我很感激如何在将来更好地表达问题。写出完整的代码可能有助于我查看更大的图片,看看我哪里出错了。

1 个答案:

答案 0 :(得分:2)

你的问题非常模糊,但我会采取以下假设:

  1. 您的查询只返回一条记录
  2. 您正在使用MySQLi
  3. 运行查询并将结果存储到$ result后,您可以使用以下代码获取IdPhoto:

    //Store a row from results into variable
    $row = $result->fetch_assoc();
    
    //Store IdPhoto into variable
    $IdPhoto = $row['IdPhoto'];
    

    注意:当您已拥有名称时,您也从数据库中选择名称,因为您正在使用它来获取记录