ورود

View Full Version : عدم ثبت اطلاعات در دیتابیس



btbmrad
دوشنبه 01 بهمن 1403, 21:15 عصر
سلام وقت بخیر
دو تا فایل دارم یکیش برا اتصال دیتابیس و یکیش هم کدهای افزودن به جدول . کدهاش بصورت زیر هست در phpadmin دیتابیس test جدول useruser ایجادکردم ولی با این کدها userثبت نمیشه لطفا بررسی کنید بنظر همه چی درست میاد


<?php
$servername="localhost";
$username="root";
$password="";
$dbname="test";

$con = new mysqli($servername, $username, $password, $dbname);
if (!$con) {
die(mysqli_error($con));

}






<?php

include("dbconnect.php");
global $con;
if(isset($_POST["submit"])) {
$name = $_POST['name'];
$lastname = $_POST['lastname'];
$address = $_POST['address'];

$sql="insert into useruser(name, lastname,address) values ('$name','$lastname','$address')";
if(mysqli_query($con,$sql)){
echo "New record created successfully";
}
else{
die(mysqli_error($con));
}}
?>



<html lang="en">

<head>
<title>Html Forms</title>
</head>

<body>
<h2>HTML Forms</h2>
<div class="container"
<form name="form" action="adduser.php" method="POST" >
<div class="mb-3">
<label for="name">Username:</label>
<input type="text" id="nametext" name="name">
</div>
<div class="mb-3">
<label for="lastname">lastname:</label>
<input type="text" id="lnametext" name="lastname">
</div>
<div class="mb-3">
<label for="address">address</label>
<input type="text" id="addresstext" name="address">
</div>
<button type="submit">submit</button>


</form>
</body>

mazoolagh
سه شنبه 02 بهمن 1403, 16:29 عصر
سلام و روز خوش
خب در حالت کلی ایراد میتونه از چیزهای مختلفی باشه: کانکشن، کوئری و ...
که باید error log رو ببینین یا در کد error handling مناسب پیاده کنین.

اما چیزی که اینجا به چشم میخوره isset($_POST["submit"]) هست،
و این نیاز داره که input شما name داشته باشه:

<button name="submit" type="submit">submit</button>

ولی چون شما دارین فرم رو به یک پیج دیگه پست میکنین،
دیگه این چک بی معنی هست!
میتونین کلا این رو بردارین - بجاش برای empty بودن فیلدها چک کنین.

arash_fa
پنج شنبه 18 بهمن 1403, 11:17 صبح
به جای


mysqli_query($con,$sql)

از


$con->query($sql);

استفاده کنید

mazoolagh
سه شنبه 23 بهمن 1403, 13:02 عصر
به جای


mysqli_query($con,$sql)

از


$con->query($sql);

استفاده کنید

کاملا بی ربط به پرسش مطرح شده
و نادرست در حالت کلی: فقط یک تفاوت در syntax هست (procedural در برابر oo)،
و هیچ تاثیری نداره!
حتی اگر میگفتین که از PDO استفاده کنین (که واقعا بهتر هست) ولی باز هم در اینجا بی ربط بود.

کد php که استارتر تاپیک گذاشتن، گرچه خام و ابتدائی هست،
ولی درسته و باید کار کنه؛
مشکل همون هست که پست شماره 2 اشاره شد (در فرم و نه کد سمت سرور).

اگر فرم رو به همین شکل نگه داریم،
باید if روی submit برداشته بشه - همین!

daving
سه شنبه 23 بهمن 1403, 14:16 عصر
بهتره به فایل اتصال دیتابیس کد
if ($con->connect_error) {
die("Connection failed: " . $con->connect_error);
اضافه بشه برای بررسی اتصال

mazoolagh
سه شنبه 23 بهمن 1403, 17:18 عصر
بهتره به فایل اتصال دیتابیس کد
if ($con->connect_error) {
die("Connection failed: " . $con->connect_error);
اضافه بشه برای بررسی اتصال

اگر قرار به بهتر کردن کد بخصوص و بخش کانکشن باشه،
کارهای بیشتری لازمه و این تغییر نه دردی دوا میکنه و نه تاثیری داره!

اصلا مشکل در این چیزها نیست!