我的目标是显示来自MSQL“images / upload / ...的图像 但我的代码说我有一个未定义的错误:
$user_id = $_SESSION['user']['id'];
$caminhoImagem = $_SESSION['user']['imagem_perfil'];
if(DBGetImagemDoUser($user_id) == True)
有人可以帮助我吗?
所有代码:
$user_id = $_SESSION['user']['id'];
$caminhoImagem = $_SESSION['user']['imagem_perfil'];
if (DBGetImagemDoUser($user_id) == True) {
echo "<p class='pull-right'><img src='" . $caminhoImagem . "'> </p>";
}
function DBGetImagemDoUser($user_id)
{
//SELECT imagem_perfil FROM users WHERE id={$id_do_user}
global $host, $dbname, $username, $password, $options;
$dbh = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password);
$procurarUser = $dbh->prepare("SELECT imagem_perfil FROM users WHERE id='user_id'");
$procurarUser->execute();
$checkUser = $procurarUser->fetchAll();
//$caminhoImagem = DBGetImagemDoUser['imagem_perfil'];
if (count($caminhoImagem) > 0) {
$user_id = $caminhoImagem['imagem_perfil'];
} else {
return False;
}
return $user_id;
}
答案 0 :(得分:0)
我不确定这是否是您所有问题的解决方案,因为我完全不理解您的问题,但这一行是错误的
$procurarUser = $dbh->prepare("SELECT imagem_perfil FROM users WHERE id='user_id'");
应该是
$ procurarUser = $ dbh-&gt; prepare(“SELECT imagem_perfil FROM users WHERE id ='$ user_id'”);
第二回答: 您的问题是可变范围。
从函数内部看不到$ caminhoImagem。
此外,您还没有从数据库中检索到的值并以任何方式返回它。这不是一个非常优雅的解决方案,但它适合您的原始脚本,只需要很少的更改。
$user_id = $_SESSION['user']['id'];
$caminhoImagem = '';
if (DBGetImagemDoUser($user_id) !== false) {
echo "<p class='pull-right'><img src='" . $caminhoImagem . "'> </p>";
}
function DBGetImagemDoUser($user_id)
{
global $host, $dbname, $username, $password, $options, $caminhoImagem;
$dbh = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password);
$procurarUser = $dbh->prepare("SELECT imagem_perfil FROM users WHERE id='$user_id'");
$procurarUser->execute();
$Users = $procurarUser->fetch();
if ( $users === false ) {
return false;
} else {
$caminhoImagem = $Users['imagem_perfil'];
}
return true;
}
答案 1 :(得分:0)
尝试:
$procurarUser = $dbh->prepare("SELECT imagem_perfil FROM users WHERE id=?");
$procurarUser->bind_param('s', $user_id);
$procurarUser->execute();
bind_param()用于将其参数值绑定到“?”插入查询中,并遵循字符串中指示的以下格式(此处我们使用“ s”表示字符串)