💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۶ امیر ابوئی
مشکل bindنکردن بیشتر از دوتا متغیر توسط bind_result
جامعه پی اچ پی ایجاد شده در ۱۹ دی ۱۳۹۹

سلام و درود

استاد ببخشید شما ویدیوتون که آموزش میدادید، دقیقه حدوداً 27 میایید دوتا متغیر رو به bind_result پاس میدید و عملکردشم درسته، ولی من برای یک متغیر به درستی کار میکنه ولی وقتی دوتا متغیر رو (طبق کدم که زیر فرستادم) میخوام bind کنم، خروجی برای من خالی میاره و هیچکدومش رو بهم نمایش نمیده، من اشتباهی توی کدم انجام دادم یا مشکل از جای دیگه ست ؟

$sql = "select count(*) as member, firstName as Names from users ";
$stmt = $mysqli->prepare($sql);
#print_r($stmt);
$stmt->execute();
$stmt->bind_result($member, $Names);
$stmt->fetch();
echo "We have $member friends in our team: ";
$i = 0;
while ($stmt->fetch()) {
    echo "$i: $Name <br>";
    $i++;
}

سلام و احترام

طبق sql زیر

$sql = "select count(*) as member, firstName as Names from users ";

باید همنام اسم فیلد را در bind_result قرار دهید 

$stmt->bind_result($member, $fristName);

 

 

 

امیر صالحی ۲۰ دی ۱۳۹۹، ۱۲:۰۲
$sql = "SELECT count(*) as member, firstName as userFirstName FROM users";
if($stmt = $mysqli->prepare($sql))
{
    $stmt->execute();
    $stmt->bind_result($members, $userFirstName);
    $i = 1;
    while ($stmt->fetch()) {
        echo "$i: $userFirstName \n";
        $i++;
    }
    echo "We have $members friends in our team: \n";
}

این کوئری کار میکنه و مشکلی نداره، تغییر خاصی هم توی ساختار کوئری ندادم.  فقط وقتی fetch اجرا میشه میتونیم به مقادیر درون bind_result دسترسی داشته باشیم تا ازشون استفاده کنیم 

 

 

 

امیر صالحی ۲۰ دی ۱۳۹۹، ۱۷:۴۳

یه سوال داشتم، من کد شمارو که عیناً هم کپی می‌کنم بهت خروجی نمیده و موقعی که سرور ران هست، تو قسمت توضیحاتش عکس شماره 1 و موقعی هم که از کد خودم استفاده می‌کنم، ارور عکس2 رو میده که علتش رو متوجه نشدم، ممنون میشم راهنماییم کنید!

 

امیر ابوئی ۲۰ دی ۱۳۹۹، ۱۸:۴۴

عکس شماره یک اوکیه و مشلی نداره، کدی که به دیتابیس باهاش متصل شدید رو لطفا قرار بدید ظاهرا متد execute روی  connection شما اجرا نمیشه 

امیر صالحی ۲۰ دی ۱۳۹۹، ۲۰:۳۶

بله من حس کردم این مشکلی داره ک وقتی به شکل شرطی مینویسیم به دلیل مشکلی که داره اجرا نمیشه و برای همین خروجی خالی میده!

$mysqli = new mysqli("localhost", "root", "", "myDB");
if(!$mysqli){
    echo "Can't connect to the database, please check the error details: "
    . PHP_EOL . $mysqli -> connect_errno . PHP_EOL . $mysqli -> connect_error ;
}
    //echo "Database connected successfully!!";
$mysqli -> set_charset('utf8');
امیر ابوئی ۲۰ دی ۱۳۹۹، ۲۰:۴۰

$mysqli = new mysqli('localhost','root','','myDB');
/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
$mysqli->set_charset('utf8');
$sql = "SELECT count(*) as member, firstName as userFirstName FROM users";
if($stmt = $mysqli->prepare($sql))
{
    $stmt->execute();
    $stmt->bind_result($members, $userFirstName);
    $i = 1;
    while ($stmt->fetch()) {
        echo "$i: $userFirstName \n";
        $i++;
    }
    echo "We have $members friends in our team: \n";
}
امیر صالحی ۲۱ دی ۱۳۹۹، ۰۵:۴۲