我知道有很多类似的问题,但我无法理解它是如何工作的。 我的问题是,我开始了我的第一个项目(也是我的第一编码冒险)使用的MySQL没有准备好的语句的PHP,使用MySQL的非准备语句一切它的确定我的问题就出来了,当我说写从预处理语句划伤项目。 我已经阅读了很多教程手册,但我的英语不是很好,我不知道如何做到这一点:
$stmt = $mysqli->prepare("SELECT (filename,ext) FROM userpic WHERE username= ?");
$stmt->bind_param('s', $username);
有数百行,我必须创建一个取出文件名和ext的cicle 并将我打印出图像的路径,但是如何使用filename和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,$ row [filename]。
感谢大家帮助我!! &安培; 很抱歉我的编码技巧不好,对不起我的英文不好。
答案 0 :(得分:-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();
}
编辑: 如果要获取多个列,请执行以下操作:
$stmt->bind_result($filename, $extension);
while ($stmt->fetch()) {
echo "<img id=\"membimagestyle\" src=\"uploads/$filename.$extension\"></div>";
}