رفتن به مطلب

یک مشکل در وصل کردن فایل php به دیتابیس


Mohsen27

ارسال‌های توصیه شده

خب دوستان سلام عرض شد امیدوارم که حالتون خوب باشه.

دوستانی که پی اچ پی بلدن میتونن این سوال منو بدن چون چند روزه که نمیتونم این مشکل رو حل کنم

من یه فایل پی اچ پی دارم که باهاش وصل میشم به دیتابیس هاست قبلا هم چندبار تو هاستای مختلف تست کردم و مطمعنم که فایلش مشکلی نداره یوزر و نام دیتابیس و پسورد هم صحیح وارد میکنم ولی با این ارور مواجه میشم:


Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/mohsenpr/public_html/App/json.php on line 8

Warning: Cannot modify header information - headers already sent by (output started at /home/mohsenpr/public_html/App/json.php:8) in /home/mohsenpr/public_html/App/json.php on line 15
\nQuery was empty

فایل پی اچ پی هم ضمیه کردم.ممنون

json.zip

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام 

دوست عزیز توی php دیگه استفاده از تابع mysql منسوخ شده !

به جای mysql از توابع mysqli استفاده کنید 

یا همچنین میتونید از PDO به صورت شی گرا استفاده کنید یا اینکه همین mysqli رو به صورت شی گرا استفاده کنید 

در کل خطایی که باهاش مواجه میشید همین بود که خدمتتون عرض کردم

ضمنا اینکه میگید روی یه هاست دیگه جواب داده به علت پشتیبانی اون هاست از توابع mysql(نسخه php منظورم هست) بوده و در حال حاضر بعضی از هاست های لینوکسی دیگه برنامه های لازم رو برای اجرای این تابع رو ارائه نمیدن!!!

موفق باشید

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام ممنونم بخاطر راهنمایی کاملتون.

متاسفانه من از پی اچ پی چیزی سرم نمیشه.شما میتونید کدشو برای من ادیت کنید یا کلا باید از اول نوشته شه؟

ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱ ساعت قبل، Mohsen27 گفته است :

سلام ممنونم بخاطر راهنمایی کاملتون.

متاسفانه من از پی اچ پی چیزی سرم نمیشه.شما میتونید کدشو برای من ادیت کنید یا کلا باید از اول نوشته شه؟

ممنون

خواهش میکنم

شما فقط میخواید به دیتابیس وصل بشید یا اینکه چکاری میخواید انجام بدید ؟

فقط همین یک فایل مد نظرتونه ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱ ساعت قبل، Mohsen27 گفته است :

بله همین فایلو اگه لطف کنید خیلی ممنون میشم :give_heart:

<?php

$databasehost = "localhost";
$databasename = "database name";
$databaseusername ="database user name";
$databasepassword = "password";

$con = mysqli_connect($databasehost,$databaseusername,$databasepassword,$databasename)or die(mysqli_error());

mysqli_query($con,"SET CHARACTER SET utf8");
$query = file_get_contents("php://input");
$sth = mysqli_query($con,$query);

if (mysqli_errno()) {
    header("HTTP/1.1 500 Internal Server Error");
    echo $query.'\n';
    echo mysqli_error();
}
else
{
    $rows = array();
    while($r = mysqli_fetch_assoc($sth)) {
        $rows[] = $r;
    }
    print json_encode($rows);
}

?>

تست کنید ببینم جواب میده 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

با این ارور روبه رو شدم:

Warning: mysqli_query(): Empty query in /home/mohsenpr/public_html/App/json.php on line 12

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /home/mohsenpr/public_html/App/json.php on line 22
[]

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 2 ساعت قبل، Mohsen27 گفته است :

با این ارور روبه رو شدم:


Warning: mysqli_query(): Empty query in /home/mohsenpr/public_html/App/json.php on line 12

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /home/mohsenpr/public_html/App/json.php on line 22
[]

 

اینو دیگه تست کردم جواب میده :DD:

<?php

$databasehost = "localhost";
$databasename = "database name";
$databaseusername ="database user name";
$databasepassword = "password";

$con = mysqli_connect($databasehost,$databaseusername,$databasepassword,$databasename);

mysqli_query($con,"SET CHARACTER SET utf8");
$query = file_get_contents("php://input");
$sth = mysqli_query($con,$query);

if (mysqli_errno()) {
    header("HTTP/1.1 500 Internal Server Error");
    echo $query.'\n';
    echo mysqli_error();
}
else
{
    $rows = array();
    while($r = mysqli_fetch_assoc($sth)) {
        $rows[] = $r;
    }
    print json_encode($rows);
}

?>

کوئریتونم چک کنید و به نظرم مستقیما بین کوتیشن ها قرار بدید و آدرس دهی نشه بهتره به نظرم !

منظورم اینجاس :

$query = file_get_contents("php://input");

به جای php://input خود کوئریتونو بزارید!

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنونم ولی باز مشکل حل نشد

اصلا بیخیال از یه فایل دیگه استفاده میکنم 

واقعا ممنونم ازتون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 23 دقیقه قبل، Mohsen27 گفته است :

ممنونم ولی باز مشکل حل نشد

اصلا بیخیال از یه فایل دیگه استفاده میکنم 

واقعا ممنونم ازتون

خواهش میکنم

این فایل رو الان براتون نوشتم با PDO که خیلی روش بهتریه به نظر من کامل عوض کردم فقط رعایت کنید کوئریتون رو 

<?php

$host="localhost";
$db="your db name";
$dbusername="your db username";
$dbpassword="your db password";


try {
    $conn = new PDO("mysql:host=$host;dbname=$db", $dbusername, $dbpassword);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch (PDOException $e){

    echo "database error" .$e->getMessage();

}

$row = array();

$sql = "inja query khodetono benevisid";
$res = $conn->query($sql);
$res=$res->fetchAll(PDO::FETCH_ASSOC);

if ($res !=null){
    $row["ghost"]=$res ;
    echo json_encode($row);
    
}else{
    
    echo "chizi vojod nadare!!!";
    
}

?>

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...