سلام از روی آموزش دارم ربات مینویسم ولی برای من خطا میده
کد صفحه index
<?php require ('config.php'); require ('telegram.php'); $db=mysqli_connect('localhost','khazarne_khandeh','******;4','khazarne_khandeh_bazar'); $query=mysqli_query($db,"select * from joke order by rand() limit 1"); $telegram = new telegram(token); //echo $telegram->getme(); //echo $telegram->getupdates(); //دریافت اطلاعات ارسال شده به بات و تبدیل به آرایه $result=$telegram->reciveText(); $userid=$result->message->from->id; $text=$result->message->text; /// ارسال پیام کاربر به خودش //$telegram->sendmessage($userid,$text); if($text=="/sendjoke") { $telegram->sendmessage($userid,$query); }
کد صفحه Telegram
<?php class telegram { /// دریافت اطلاعات بات public function getme() { $url='https://api.telegram.org/bot541992420******w/getMe'; return file_get_contents($url); } /// دریافت اطلاعات ارسال شده به بات public function getupdates() { $url='https://api.telegram.org/bot541992420:AAF******eNw/getupdates'; return file_get_contents($url); } public function reciveText() { $text=json_decode(file_get_contents('php://input')); return $text; } public function sendmessage($userid,$text) { $url='https://api.telegram.org/bot54199242********/sendmessage?chat_id='.$userid.'&text='.$text; file_get_contents($url); } }
اینم خطا
[16-Jan-2018 19:47:41 Asia/Tehran] PHP Catchable fatal error: Object of class mysqli_result could not be converted to string in /home/khazarne/public_html/bt/telegram.php on line 33 [16-Jan-2018 19:47:42 Asia/Tehran] PHP Catchable fatal error: Object of class mysqli_result could not be converted to string in /home/khazarne/public_html/bt/telegram.php on line 33
سلام
به صورت مستقیم دارید خروجی $query رو دارید به تابع sendmessage میفرستید و اونجا به صورت text معمولی ازش استفاده میکنید.
وقتی از mysqli استفاده میکنید بعد از اجرای کوئری باید اون رو fetch کنید در غیر این صورت اون متغییر $query به صورت یک آبجکت خواهد بود.
ضمنا mysqli_close رو هم فراموش نکنید.
if($text=="/sendjoke") { mysqli_query($db,"set names utf8"); $query=mysqli_query($db,"select joke from joke order by rand() limit 1"); $resultjoke=mysqli_fetch_array($query,'string'); mysqli_close($db); $telegram->sendmessage($userid,$query); }
اینطوری شد ولی این خطا میده
[16-Jan-2018 21:29:34 Asia/Tehran] PHP Warning: mysqli_fetch_array() expects parameter 2 to be long, string given in /home/khazarne/public_html/bt/index.php on line 29 [16-Jan-2018 21:29:34 Asia/Tehran] PHP Catchable fatal error: Object of class mysqli_result could not be converted to string in /home/khazarne/public_html/bt/telegram.php on line 33
فیلد دوم در mysqli_fetch_array مربوط به نوع برگشتی آرایه هست که میتواند دو نوع باشد: ۱.
MYSQLI_ASSOC ۲. MYSQLI_NUM
نوع MYSQLI_NUM آرایه ای با ایندکس های عددی برمیگرداند و نوع MYSQLI_ASSOC آرایه ای با نام ستونهای جدول دیتابیس.
بعد از اینکه یکی از این دو نوع انتخاب کردید، یک آرایه در اختیارتون هست که میتونید از اون استفاده کنید به این صورت:
if($text=="/sendjoke") { mysqli_query($db,"set names utf8"); $query=mysqli_query($db,"select joke from joke order by rand() limit 1"); $resultjoke=mysqli_fetch_array($query,MYSQLI_ASSOC); mysqli_close($db); $telegram->sendmessage($userid,$query['joke']); }
الان مشکل این چیه ؟ اون قسمت زرد رنگ باید حل بشه ، اما چطور ؟
کسی نیست جواب بده ؟
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)