Sql sprintf和php

Sql sprintf和php,sql,printf,Sql,Printf,下面的函数给出了除艺术家id之外的所有相关数据,运行时我检查了数据库中的所有元素并确定 如果我将艺术家id更改为实际的“id”,它将在函数结果中显示为艺术家id=4和 坦白说,我不明白这是什么原因造成的 功能的结果: SELECT `image_album_id`, `member_id`, `artist_id`, `albumname`, `ext`, `timestamp` FROM album_images WHERE artist_id = AND member_id = 1

下面的函数给出了除艺术家id之外的所有相关数据,运行时我检查了数据库中的所有元素并确定

如果我将艺术家id更改为实际的“id”,它将在函数结果中显示为艺术家id=4和

坦白说,我不明白这是什么原因造成的

功能的结果:

SELECT `image_album_id`, `member_id`, `artist_id`,     `albumname`, `ext`, `timestamp`
FROM album_images WHERE artist_id = AND member_id = 1 AND        
image_album_id = 160

<?php
function get_data_nxtprv($fields, $where) {
$return = FALSE;

// Template
$template = "SELECT %s "
    . "FROM album_images "
. "WHERE artist_id = " . $artist_id. " 
       AND member_id = ".$_SESSION['member_id']." %s";

// Current record 
$sql    = sprintf($template, $fields, $where);
$query  = mysql_query($sql);
$query_result = mysql_fetch_assoc($query);

//print_r($sql);
// If data has been found
if ($query_result)
{
    $return = $query_result;
}

return $return;
?>
选择'image\u album\u id','member\u id','artist\u id','album name','ext','timestamp`
来自相册图片,其中艺术家id=和成员id=1
图像\u相册\u id=160

我不能完全理解你的问题。但是我注意到你的函数使用了三个输入变量:

$artist_id, $fields, $where
但是$artist_id不能作为参数通过

您需要修改函数调用:

function get_data_nxtprv($artist_id, $fields, $where) 

您的SQL中有一个错误

SELECT `image_album_id`, `member_id`, `artist_id`, `albumname`, `ext`, `timestamp`
FROM album_images WHERE artist_id = AND member_id = 1 AND        
image_album_id = 160
难道不是吗

SELECT `image_album_id`, `member_id`, `artist_id`, `albumname`, `ext`, `timestamp`
FROM album_images WHERE member_id = 1 AND        
image_album_id = 160

如果
artist\u id
是您要查找的字段之一?

Hi,artist\u id的行为是否与成员\u id相同,并且在where变量下?Hi,无论如何,我尝试了您所说的,但没有用。我有$template部分的正确语法吗?您好,这个函数被另一个使用,您得到这个$results['current']=get_data_nexprv($fields,“and image_album_id={image_album_id}”);这是重复的,用上一个或下一个代替当前。你到底想实现什么?给定唱片集id和会员id,是否尝试检索相应的艺术家id、唱片集名称和时间戳?尚不清楚您是否希望艺术家id和成员id位于WHERE子句或SELECT子句中。[已解决]我没有获取艺术家id。非常感谢所有评论。是的,存在错误,因为艺术家id没有从查询中提供数据响应。我不明白为什么。查询“WHERE artist_id=“.$artist_id.”和member_id=“$_SESSION['member\u id']”。member\u id返回正确。啊,好的,那么您可以向我们展示调用返回上面列出的代码的函数的代码吗?听起来问题就在那里。