[WordPress] Mysqli [重複] や php で MySQL からイメージをロードする方法

スポンサーリンク

Question

私は php で始めているし、私はここに問題があります。私のデータベースからイメージを取得したいが、このエラーを得ている:

"Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\apps\wordpress\htdocs\wp-content\themes\restimpo\funcionesOscar.php on line 31"

これは私の関数:

$hostname = 'localhost';
$usuario = 'root';
$pword = '';
$db = 'bitnami_wordpress';

function carga_anuncios()
{
    $link = mysqli_connect($hostname, $usuario, $pword);

    mysqli_select_db($link, $db);

    $_sql = "Select * from tblAnuncios where fldIndex = 1;";

    $result = mysqli_query($link, $_sql);

    $extraido = mysqli_fetch_array($result);

    $db_img = $extraido['fldFoto'];

    $db_img = base64_decode($db_img);

    echo '';
}

私は検索しましたハードこれが何かを発見していないが私の仕事します。誰か助けてできますか?ありがとうございます !

編集 1:

ここで私の新しいコードは、別のエラーを得ています。Execute() 行に表示されます:

define('hostname','localhost');
define('usuario','root');
define('pword','');
define('db','bitnami_wordpress');

function carga_anuncios()
{
    $mysqli = mysqli_connect(hostname, usuario, pword);

    if(!$mysqli)
        echo 'Cant connect to MySQL: '.mysqli_connect_error();

    $id='1';  
    $stmt = $mysqli->prepare("SELECT fldFoto FROM tblAnuncios WHERE fldIndex=1;"); 

    $stmt->execute();
    $stmt->store_result();

    $stmt->bind_result($image);
    $stmt->fetch();

    header("Content-Type: image/jpeg");
    echo $image; 
}

エラーは:

Fatal error: Call to a member function execute() on a non-object in C:\xampp\apps\wordpress\htdocs\wp-content\themes\restimpo\funcionesOscar.php on line 23

編集 2:

私は今、エラー得られないが、画像を見ることができない

define('hostname','localhost');
define('usuario','root');
define('pword','');
define('db','bitnami_wordpress');

function carga_anuncios()
{
    $mysqli = mysqli_connect(hostname, usuario, pword);

    mysqli_select_db($mysqli, db); 

    if(!$mysqli)
        echo 'Cant connect to MySQL: '.mysqli_connect_error();

    $id='1';  
    $stmt = $mysqli->stmt_init();
    $stmt = $mysqli->query("SELECT fldFoto FROM tblAnuncios"); 

    while ($row = mysqli_fetch_assoc($stmt)) 
    {
        $imagen = $row['fldFoto'];
        $imagen = base64_decode($imagen);
        echo '';
    }
}

今から得ている正しくデータ、データベースが、それは jpeg に変換取得されません

最後に作品: 私は私自身の質問に答えることはできません (なぜか分からない)

define('hostname','localhost');
define('usuario','root');
define('pword','');
define('db','bitnami_wordpress');

function prueba()
{
    echo '
funcionesOscar prueba()
'; } function carga_anuncios() { $mysqli = mysqli_connect(hostname, usuario, pword); mysqli_select_db($mysqli, db); if(!$mysqli) echo 'Cant connect to MySQL: '.mysqli_connect_error(); $id='1'; $stmt = $mysqli->stmt_init(); $stmt = $mysqli->query("SELECT fldFoto FROM tblAnuncios"); while ($row = mysqli_fetch_assoc($stmt)) { $imagen = $row['fldFoto']; $imagen = base64_encode($imagen); echo ''; } }

の答え

使用外で定義し、関数の使用

define('HOSTNAME','localhost');
define('USUARIO,''root');
define('PWORD','');
define('DB','bitnami_wordpress');

->

mysqli_connect(HOSTNAME, USUARIO, PWORD);

関数でそれのような

使用または

global $hostname, $usuario, $pword ,$db;

関数内

理由:

使用する変数はグローバル スコープを指定しないと、PHP はそのローカル変数それが見つけることその宣言ローカル スコープとして機能と仮定します。関数の宣言がないとエラーになります。グローバル変数を使用して定義またはそれらのような変数を扱うようにグローバル関数で

global

キーワードを使用します

編集 1:

を使いましたか?

$stmt = $mysqli->stmt_init();

も SQL 構文で

;

を使用する必要はありません

問題を取得する場合を使用する:

$mysqli->query("Your SQL");

の代わりに

$stmt = $mysqli->prepare("SELECT fldFoto FROM tblAnuncios WHERE fldIndex=1;"); 
$stmt->execute();

答え

、それらは、上記の関数でこれらの行を書きます。現在彼らが使用するスコープ外です。またはグローバル変数を使用します


$hostname = ‘localhost'; $usuario = ‘root'; $pword = ‘; $db = ‘bitnami_wordpress';

答え

mysqli_connect

にデータベースの

bitnami_wordpress

を使用していない

prepare ステートメントは、テーブルを見つけることができないので。Mysqli_connect 呼び出しにデータベース名を追加:

$mysqli = mysqli_connect(hostname, usuario, pword, db);

if(!$mysqli)
    echo 'Cant connect to MySQL: '.mysqli_connect_error();

http://stackoverflow.com/questions/27779215/how-to-load-an-image-from-mysql-with-php-and-mysqli

スポンサーリンク

Leave a Reply