MySQL veritabanımdan (PHP aracılığıyla) sonucu alamıyorum bir sorunum var. Aynı işlevi başka yerlerde kullanıyorum ve kusursuz çalışıyor. Ancak bu noktada "Uyarı: mysqli_query(): mysqli getiremedi" hatasını almaya devam ediyorum. Problemin detayları aşağıda açıklanmıştır. Benim PHP (aşağıda görüldüğü gibi getAllCountries) Başka bir yerde oldukça benzer işlevi kullanmak mükemmel çalışır hangi: Aşağıdaki kodu içeren bir php dosyasına sahipUyarı: mysqli_query(): Mysqli getirilemedi
:
function getAllCountries()
{
$result = db_query("SELECT countryid, name FROM country ORDER BY name ASC");
echo "<select class=addresscountry name=country>";
while($row = mysqli_fetch_array($result)) {
echo '<option value="' . $row['countryid'] . '">' . $row['name'] . '</option>';
}
echo "</select>";
mysqli_close(db_connect());
}
Yani sorun şudur:
require 'dbfunctions.php';
:
<?php
require 'includes/functions.php';
function getUserPicPath()
{
$userid = $_SESSION['userid'];
$result = db_query("SELECT picture FROM user WHERE userid='$userid'");
while($row = mysqli_fetch_array($result)) {
$picturepath = $row['picture'];
}
echo $picturepath;
mysqli_close(db_connect());
}
benim functions.php dosyası (birlikte olmayan diğer ilgili fonksiyonları ile) aşağıdaki satırı vardır
ve benim dbfunctions.php şöyle görünür:
if ($userid == -1)
{
showNotAuthorizedPage();
} else {
myAccountPage();
}
ve myAccountPage() fonksiyonu ile aynı dosyasında bildirildi: Aşağıdaki fonksiyonu çağırmak benim PHP belgesinde
<?php
function db_connect()
{
require ".db_password.php";
static $connection;
if(!isset($connection)) {
$connection = mysqli_connect('localhost',$username,$password,$dbname);
}
if($connection === false) {
return mysqli_connect_error();
}
return $connection;
}
function db_query($query)
{
$connection = db_connect();
$result = mysqli_query($connection,$query);
return $result;
}
fonksiyonu olarak adlandırılan getUserPicPath() işlevi, bu getUserPicPath() aşağıdaki gibidir:
<div id="tabs-2">
<p><?php getUserPicPath(); ?></p>
</div>
I tırnaklardan tutarak (Web sayfamda) ve ben onu aramak istediğiniz olmasıdır aşağıdaki hata veriyor myAccountPage() fonksiyonu:.
Warning: mysqli_query(): Couldn't fetch mysqli in C:\Users\Dennis\Documents\My Dropbox\xxx\zzz\www\Project Files\includes\dbfunctions.php on line 29
Call Stack
# Time Memory Function Location
1 0.0000 256880 {main}() ..\myaccount.php:0
2 0.0010 283328 myAccountPage() ..\myaccount.php:181
3 0.0070 285368 getUserPicPath() ..\myaccount.php:121
4 0.0070 285528 db_query() ..\myaccount.php:11
5 0.0070 285624 mysqli_query () ..\dbfunctions.php:29
(!) Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\Users\Dennis\Documents\My Dropbox\me&roxy\WE\final project\Project Files\myaccount.php on line 13
Call Stack
# Time Memory Function Location
1 0.0000 256880 {main}() ..\myaccount.php:0
2 0.0010 283328 myAccountPage() ..\myaccount.php:181
3 0.0070 285368 getUserPicPath() ..\myaccount.php:121
4 0.0080 285768 mysqli_fetch_array () ..\myaccount.php:13
(!) Notice: Undefined variable: picturepath in C:\Users\Dennis\Documents\My Dropbox\me&roxy\WE\final project\Project Files\myaccount.php on line 17
Call Stack
# Time Memory Function Location
1 0.0000 256880 {main}() ..\myaccount.php:0
2 0.0010 283328 myAccountPage() ..\myaccount.php:181
3 0.0070 285368 getUserPicPath() ..\myaccount.php:121
(!) Warning: mysqli_close(): Couldn't fetch mysqli in C:\Users\Dennis\Documents\My Dropbox\me&roxy\WE\final project\Project Files\myaccount.php on line 19
Call Stack
# Time Memory Function Location
1 0.0000 256880 {main}() ..\myaccount.php:0
2 0.0010 283328 myAccountPage() ..\myaccount.php:181
3 0.0070 285368 getUserPicPath() ..\myaccount.php:121
4 0.0100 285864 mysqli_close () ..\myaccount.php:19
Bu tam bilgi mevcut değil. Tıpkı bağlantı hatalarını kontrol ettiğiniz gibi, sorgu hatalarını da kontrol etmelisiniz. Ben mysqli ile aşina değilim ama eğer kılavuzu açarsanız isminde 'error' ile bir şeyler bulacaksınız. –
Sorgunuzu niçin 'getUserPicPath()' iki kez çalıştırıyorsunuz? İlk görüşmeden sonraki 'echo' size ne veriyor? – andrewsi
Ayrıca mysqli_error() 'da neyin olduğunu kontrol etmenizi öneririm, böylece veritabanının hangi hatadan geçtiğini görebilirsiniz – andrewsi