هانیا
2 سال پیش توسط هانیا مطرح شد
6 پاسخ

ارور در insert با php

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


ثبت پرسش جدید
مهدی
تخصص : Backend Developer
@mahdidv 2 سال پیش مطرح شد
0

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


حمیدرضا
تخصص : برنامه نویس backend
@hamidrezamnj 2 سال پیش آپدیت شد
0

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

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


هانیا
تخصص : توسعه دهنده ی وب
@Haniya 2 سال پیش مطرح شد
0
$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 2 سال پیش مطرح شد
0

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


حمیدرضا
تخصص : برنامه نویس backend
@hamidrezamnj 2 سال پیش مطرح شد
0

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

INSERT INTO `tbl-users` (name,email,status) VALUES ('negar','negar@negar.com','1')

هانیا
تخصص : توسعه دهنده ی وب
@Haniya 2 سال پیش مطرح شد
1

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


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

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