🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۵ ابراهیم محمدی
Medoo library and issue in Invalid argument
امیر صالحی حل شده توسط امیر صالحی

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

"Fatal error: Uncaught InvalidArgumentException : Incorrect connection options in C:\xampp\htdocs\Micro.php \vendor\catfan\medoo\src\Medoo.php on line 275"

سلام و احترام

لطفا کدی که برای ارتباط به دیتابیس دارید رو قرار بدید تا بررسی شه و لطفا بگید که کانکشنتون رو به چی تغییر دادید

امیر صالحی ۲۹ تیر ۱۴۰۰، ۱۸:۲۹
<?php
namespace App\Models\Contracts;
use Medoo\Medoo;
class MysqlBaseModel extends BaseModel
{
    public function __construct(){
        try {
            // $connection = new \PDO("mysql:dbname={$_ENV['DB_NAME']};host={$_ENV['DB_HOST']}", $_ENV['DB_USER'], $_ENV['DB_PASS']);
            // $connection->exec("set name utf8");
            $this->connection = new Medoo([
                // [required]
                'type' => 'mysql',
                'host' => $_ENV['DB_HOST'],
                'database' => $_ENV['DB_NAME'],
                'username' => $_ENV['DB_USER'],
                'password' => $_ENV['DB_PASS'],
                // [optional]
                'charset' => 'utf8mb4',
                'collation' => 'utf8mb4_general_ci',
                'port' => 3306,
                // [optional] Table prefix, all table names will be prefixed as PREFIX_table.
                'prefix' => '',
                // [optional] Enable logging, it is disabled by default for better performance.
                'logging' => true,
                // [optional]
                // Error mode
                // Error handling strategies when error is occurred.
                // PDO::ERRMODE_SILENT (default) | PDO::ERRMODE_WARNING | PDO::ERRMODE_EXCEPTION
                // Read more from https://www.php.net/manual/en/pdo.error-handling.php.
                'error' =>\PDO::ERRMODE_EXCEPTION
            ]);
        } catch (Exception $e) {
            echo "Faild to coonect " . $e->getMessage;
        }
    }
    public function create(array $data) : int{
        $this->connection->insert($this->table, $data);
        return $this->connection->id();
    }
     public function find(int $id) : object{
        $record = $this->connection->get($this->table , [$this->primaryKey => $id]);
        return (object)$record;
    }
    public function getAll() : array{
        return [];
    }
    public function get(array $columns, array $where) : array{
        return [];
    }
    # Update records 
    public function update(array $data, array $where) : int{
        return 1;
    }
    # Delete records 
    public function delete(array $where) : int{
        return 1;
    }
}
ابراهیم محمدی ۳۰ تیر ۱۴۰۰، ۰۳:۵۱

این کد رو با تغییر اطلاعات دیتابیس مثل username و password و dbname تست کنید و خبر بدید، من تستش کردم مشکلی نداشت

try {
    // $connection = new \PDO("mysql:dbname={$_ENV['DB_NAME']};host={$_ENV['DB_HOST']}", $_ENV['DB_USER'], $_ENV['DB_PASS']);
    // $connection->exec("set name utf8");
    $connection = new Medoo([
        // [required]
        'type' => 'mysql',
        'host' => 'localhost',
        'database' => 'test',
        'username' => 'root',
        'password' => '',
        // [optional]
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_general_ci',
        'port' => 3306,
        // [optional] Table prefix, all table names will be prefixed as PREFIX_table.
        'prefix' => '',
        // [optional] Enable logging, it is disabled by default for better performance.
        'logging' => true,
        // [optional]
        // Error mode
        // Error handling strategies when error is occurred.
        // PDO::ERRMODE_SILENT (default) | PDO::ERRMODE_WARNING | PDO::ERRMODE_EXCEPTION
        // Read more from https://www.php.net/manual/en/pdo.error-handling.php.
        'error' =>\PDO::ERRMODE_EXCEPTION
    ]);
    echo "successfully connected";
} catch (Exception $e) {
    
امیر صالحی ۳۰ تیر ۱۴۰۰، ۰۸:۰۲

پس مشکل ما ما استفاده از این connection حل شد

$pdo = new PDO('mysql:dbname=test;host=127.0.0.1', 'user', 'password');
$database = new Medoo([
	// Initialized and connected PDO object.
	'pdo' => $pdo,
	// [optional] Medoo will have different handle method according to different database type.
	'type' => 'mysql'
]);
بهترین پاسخ
امیر صالحی ۳۰ تیر ۱۴۰۰، ۱۱:۵۰

بله ازت ممنوم امیر جان برای وقتی که گذاشتی و ارورم رو برطرف کردی تو یکی از موفق‌ترین برنامه نویس‌های اینده خواهی شد موفق باشی و پایدار

ابراهیم محمدی ۳۰ تیر ۱۴۰۰، ۱۱:۵۲