راکت

ارور در insert با php

6 پاسخ

سلام دوستان من برای 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
ممنون می‌شم راهنماییم کنید.

هانیا
هانیا
@Haniya
ثبت پرسش جدید

پاسخ‌ها

6
مهدی
مهدی
@mahdidv

تخصص: Backend Developer

سلام لطفا کد insert.php رو هم بذارید

حمیدرضا
حمیدرضا
@hamidrezamnj

تخصص: برنامه نویس backend

سلام و درود،
تابع mysqliquery به این صورت کار میکنه که دو آرگومان رو دریافت میکنه.
آرگومان اول برای دریافت شی که با استفاده از تابع mysqliconnect ایجاد کردید.
آرگومان دوم برای دریافت دستوری یا کوئری که میخواید توی دیتابیس اجرا کنید.
توی اروری که شما قرار دادید ذکر شده که انتظار میرفته توی آرگومان اول شی ساخته شده رو وارد کنید اما string وارد کردید پس احتمالا شما به اشتباه آرگومان دوم و اول رو جا به جا وارد کردید یا شاید هم فراموش کردید که باید آبجکت دیتابیس رو هم توی آرگومان اول به تابع پاس بدیدو به اشتباه فقط دستوری که میخواستید توی دیتابیس اجرا بشه رو وارد کردید.

ادیت:
الان با دقت بیشتری به ارور نگاه کردم متوجه شدم شما تابع mysqli_connect رو توی آرگومان اول وارد کردید الان دو راه برای رفع خطا دارید:
قبل از استفاده از تابع mysqli_query یه متغییر بسازید و با استفاده از تابع mysqli_connect به دیتابیس متصل بشید و بعد توی این تابع اون متغییر رو استفاده کنید
یا اینکه اون دوتا سینگل کوتیشنی که به اشتباه اول و آخر آرگومان اول استفاده کردید رو پاک کنید که تابع mysqli_connect به عنوان یه آبجکت اعمال بشه نه رشته کاراکتر

شاید پاسخ شما همین‌جا باشد

هانیا
هانیا
@Haniya

تخصص: توسعه دهنده ی وب

$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 "خطا";
}

خدمت شما

هانیا
هانیا
@Haniya

تخصص: توسعه دهنده ی وب

ممنون که وقت گذاشتید و پاسخ دادین . تعییراتی که گفتید رو انجام دادم و الان ارور دیگه‌ای دریافت می‌کنم :
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

حمیدرضا
حمیدرضا
@hamidrezamnj

تخصص: برنامه نویس backend

سلام کدی که ارسال کردید رو به همراه ارور دیدم الان دیگه کد php هیچ مشکلی نداره و ارور داره از query که شما بهش ارسال میکنید ایراد میگیره، مشکل هم از فراخوانی اسم جدولتون هست که tbl-users نام داره.
چون توی ساختار sql کاراکتر - به عنوان کامنت شناخته میشه کد بعد از این کاراکتر به عنوان کامنت شناسایی میشه و عملا توی دیتابیس فقط کدهایی که تا قبل از این کاراکتر وارد شدن اجرا میشه، راهکار هم این هست که اسم جدولتون رو داخل ` وارد کنید که تا کاراکتر - سینتکس کدتون رو خراب نکنه، به این صورت:

INSERT INTO `tbl-users` (name,email,status) VALUES ('negar','negar@negar.com','1')
هانیا
هانیا
@Haniya

تخصص: توسعه دهنده ی وب

مشکلم حل شد!!!
مرسی از راهنماییتون🤝روز خوبی داشته باشید

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام