我正在尝试从sql查询中设置一个int值。在我的ios应用程序中,我可以为照片ID分配一个int值,存储它并检索它。如果我想用新的jpg覆盖照片但仍然使用现有的IdPhoto并因此使用相同的文件名,例如,问题就出现了。 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']);
}
}
}
}
所以问题出在代码的第一部分,我需要更新照片,但仍然使用相同的IdPhoto
修改
我需要的代码如下:
$getID = mysqli_fetch_assoc(mysqli_query($link, "SELECT IdPhoto FROM users WHERE Name = '$Name'"));
$IdPhoto = $getID['IdPhoto'];
虽然我最终得到了答案,但我很感激如何在将来更好地表达问题。写出完整的代码可能有助于我查看更大的图片,看看我哪里出错了。
答案 0 :(得分:2)
你的问题非常模糊,但我会采取以下假设:
运行查询并将结果存储到$ result后,您可以使用以下代码获取IdPhoto:
//Store a row from results into variable
$row = $result->fetch_assoc();
//Store IdPhoto into variable
$IdPhoto = $row['IdPhoto'];
注意:当您已拥有名称时,您也从数据库中选择名称,因为您正在使用它来获取记录