2013-11-21 47 views
-1

我知道有很多类似的问题,但我不明白它是如何工作的。 我的问题是,我已经开始我的第一个项目(也是我的第一编码冒险)与PHP使用MySQL没有准备好的语句,使用MySQL非准备好的声明一切都没事我的问题出来时,我声明从头编写项目准备声明。 我已经阅读了很多教程手册,但我不是英语非常好,我不能怎么样已了解,使这个:打印出来的行取自查询

$stmt = $mysqli->prepare("SELECT (filename,ext) FROM userpic WHERE username= ?"); 
$stmt->bind_param('s', $username); 

有数百行,我必须创建一个cicle即取出文件名和ext 并打印出我的图像的路径,但它如何工作取出文件名和外部数组,并为每一行创建cicle。

我无法理解它是如何工作在非准备语句我用这个例子:

$sql = mysql_query("SELECT filename FROM users WHERE username = '$_SESSION[username]' ")or die(mysql_error()); 
while($row = mysql_fetch_array($sql)) 
{ 
echo "<img id=\"membimagestyle\" src=\"uploads/$row[filename]\"></div>"; 
} 

我无法理解如何在事先准备好的声明版本使用mysql_fetch_array,$行[文件名]。

感谢大家帮助我! & 对不起,我的编码技巧不好,对不起我的英文不好。

+0

代替MySQL的)? – vzeke

+0

第二段代码是旧的源代码,我现在在使用mysql,现在我的问题是我不知道如何创建cicle来打印mysqli上每行的数组。 – user2996667

回答

-1

我希望这个例子可以帮助你解决你的问题

$query = "SELECT filename FROM users WHERE username = ?"; 


if($stmt = $mysqli->prepare($query)){ 
    // bind parameter 
    $stmt->bind_param('s', $username); 

    // execute 
    $stmt->execute(); 

    // bind result to a variable 
    $stmt->bind_result($filename); 

    // iterate through the results 
    while ($stmt->fetch()) {   
     echo "<img id=\"membimagestyle\" src=\"uploads/$filename\"></div>"; 
    }  

    // close the statement 
    $stmt->close(); 
} 

编辑: 如果你想获取多个列执行以下操作:你为什么不使用的mysqli(

$stmt->bind_result($filename, $extension); 

while ($stmt->fetch()) { 
    echo "<img id=\"membimagestyle\" src=\"uploads/$filename.$extension\"></div>"; 
} 
+0

感谢这就是我需要一个明确的例子,现在只有一个问题的意见很明显。 只有一个问题,如果查询选择2或3字段如何绑定到结果? 示例查询 SELECT文件名扩展名FROM用户WHERE用户名=? 如何绑定到一个可用的变量名称和扩展名? 非常感谢 – user2996667

+0

检查我的编辑为这个问题的答案。为什么downvote? – stefan

+0

我真的不知道为什么投票我没有信誉积分给你一个积极的反馈,我没有给你负面的投票你的回答对我的情况是完美的,我真的很感谢你Stefan E的帮助 – user2996667