سلام دوستان من برای insertبا php این ارور رو دریافت میکنم : Fatal error: Uncaught TypeError: mysqli_query(): Argument #1 ($mysql) must be of type mysqli, string given in C:\xampp\htdocs\php\insertt.php:5 Stack trace: #0 C:\xampp\htdocs\php\insertt.php(5): mysqli_query('mysqli_connect(...', 'INSERT INTO tbl...') #1 {main} thrown in C:\xampp\htdocs\php\insertt.php on line 5
ممنون میشم راهنماییم کنید.
سلام و درود،
تابع mysqliquery به این صورت کار میکنه که دو آرگومان رو دریافت میکنه.
آرگومان اول برای دریافت شی که با استفاده از تابع mysqliconnect ایجاد کردید.
آرگومان دوم برای دریافت دستوری یا کوئری که میخواید توی دیتابیس اجرا کنید.
توی اروری که شما قرار دادید ذکر شده که انتظار میرفته توی آرگومان اول شی ساخته شده رو وارد کنید اما string وارد کردید پس احتمالا شما به اشتباه آرگومان دوم و اول رو جا به جا وارد کردید یا شاید هم فراموش کردید که باید آبجکت دیتابیس رو هم توی آرگومان اول به تابع پاس بدیدو به اشتباه فقط دستوری که میخواستید توی دیتابیس اجرا بشه رو وارد کردید.
ادیت:
الان با دقت بیشتری به ارور نگاه کردم متوجه شدم شما تابع mysqli_connect رو توی آرگومان اول وارد کردید الان دو راه برای رفع خطا دارید:
قبل از استفاده از تابع mysqli_query یه متغییر بسازید و با استفاده از تابع mysqli_connect به دیتابیس متصل بشید و بعد توی این تابع اون متغییر رو استفاده کنید
یا اینکه اون دوتا سینگل کوتیشنی که به اشتباه اول و آخر آرگومان اول استفاده کردید رو پاک کنید که تابع mysqli_connect به عنوان یه آبجکت اعمال بشه نه رشته کاراکتر
$servername = "localhost";
$user = "root";
$password = "";
$dbname= "practice";
$conn = mysqli_connect($servername,$user,$password,$dbname);
if (!$conn){
die('اتصال انجام نشد');
}else{
echo "اتصال انجام شد";
}
$insert_query = "INSERT INTO tbl-users (name,email,status) VALUES ('negar','negar@negar.com','1')";
if (mysqli_query($conn,$insert_query)){
echo "کاربر ثبت شد";
}else{
echo "خطا";
}
خدمت شما
ممنون که وقت گذاشتید و پاسخ دادین . تعییراتی که گفتید رو انجام دادم و الان ارور دیگهای دریافت میکنم :
Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-users (name,email,status) VALUES ('negar','negar@negar.com','1')' at line 1 in C:\xampp\htdocs\php\insertt.php:15 Stack trace: #0 C:\xampp\htdocs\php\insertt.php(15): mysqli_query(Object(mysqli), 'INSERT INTO tbl...') #1 {main} thrown in C:\xampp\htdocs\php\insertt.php on line 15
سلام کدی که ارسال کردید رو به همراه ارور دیدم الان دیگه کد php هیچ مشکلی نداره و ارور داره از query که شما بهش ارسال میکنید ایراد میگیره، مشکل هم از فراخوانی اسم جدولتون هست که tbl-users نام داره.
چون توی ساختار sql کاراکتر - به عنوان کامنت شناخته میشه کد بعد از این کاراکتر به عنوان کامنت شناسایی میشه و عملا توی دیتابیس فقط کدهایی که تا قبل از این کاراکتر وارد شدن اجرا میشه، راهکار هم این هست که اسم جدولتون رو داخل ` وارد کنید که تا کاراکتر - سینتکس کدتون رو خراب نکنه، به این صورت:
INSERT INTO `tbl-users` (name,email,status) VALUES ('negar','negar@negar.com','1')
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟