عدم ثبت اطلاعات در دیتابیس
سلام وقت بخیر
دو تا فایل دارم یکیش برا اتصال دیتابیس و یکیش هم کدهای افزودن به جدول . کدهاش بصورت زیر هست در 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:
<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>
نقل قول: عدم ثبت اطلاعات در دیتابیس
سلام و روز خوش
خب در حالت کلی ایراد میتونه از چیزهای مختلفی باشه: کانکشن، کوئری و ...
که باید error log رو ببینین یا در کد error handling مناسب پیاده کنین.
اما چیزی که اینجا به چشم میخوره isset($_POST["submit"]) هست،
و این نیاز داره که input شما name داشته باشه:
<button name="submit" type="submit">submit</button>
ولی چون شما دارین فرم رو به یک پیج دیگه پست میکنین،
دیگه این چک بی معنی هست!
میتونین کلا این رو بردارین - بجاش برای empty بودن فیلدها چک کنین.
نقل قول: عدم ثبت اطلاعات در دیتابیس
به جای
mysqli_query($con,$sql)
از
$con->query($sql);
استفاده کنید
نقل قول: عدم ثبت اطلاعات در دیتابیس
نقل قول:
نوشته شده توسط
arash_fa
به جای
mysqli_query($con,$sql)
از
$con->query($sql);
استفاده کنید
کاملا بی ربط به پرسش مطرح شده
و نادرست در حالت کلی: فقط یک تفاوت در syntax هست (procedural در برابر oo)،
و هیچ تاثیری نداره!
حتی اگر میگفتین که از PDO استفاده کنین (که واقعا بهتر هست) ولی باز هم در اینجا بی ربط بود.
کد php که استارتر تاپیک گذاشتن، گرچه خام و ابتدائی هست،
ولی درسته و باید کار کنه؛
مشکل همون هست که پست شماره 2 اشاره شد (در فرم و نه کد سمت سرور).
اگر فرم رو به همین شکل نگه داریم،
باید if روی submit برداشته بشه - همین!
نقل قول: عدم ثبت اطلاعات در دیتابیس
بهتره به فایل اتصال دیتابیس کد
if ($con->connect_error) {
die("Connection failed: " . $con->connect_error);
اضافه بشه برای بررسی اتصال
نقل قول: عدم ثبت اطلاعات در دیتابیس
نقل قول:
نوشته شده توسط
daving
بهتره به فایل اتصال دیتابیس کد
if ($con->connect_error) {
die("Connection failed: " . $con->connect_error);
اضافه بشه برای بررسی اتصال
اگر قرار به بهتر کردن کد بخصوص و بخش کانکشن باشه،
کارهای بیشتری لازمه و این تغییر نه دردی دوا میکنه و نه تاثیری داره!
اصلا مشکل در این چیزها نیست!