مشكلة في الإدخال إلى قاعدة بيانات MySql عن طريق Forms : [بلغة PHP]

أهلاً ومرحباً بكم ،،

أنا في الفترة السابقة قمت بتنصيب برنامج appserv على Windows 8

وقمت بتصيب أيضاً المحرر المعروف Aptana Studio

وأتعلم عليه PHP

قمت بتصميم form بسيط في PHP

وقمت بعمل قاعدة بيانات جديدة وبداخلها جدول ، هذا هو الجدول الذي سأقوم بإدخال فيه البيانات عن طريق الـForms

بعد ذلك قمت بعمل ملف إتصال بقاعدة البيانات ، والإتصال تم بنجاح

وقمت باستدعاء ملف الإتصال إلى ملف الـForms ثم بعد ذلك كود الإدخال "INSERT INTO users" علماً بأن إسم الجدول users

ثم حفظ ،، عند المعاينة والإدخال يظهر لي رسالة خطأ غير مفهومة ،، وأيضاً إستعنت بموقع stackoverflow

لم يأتي لي بنتيجة نفس المشكلة ، وقمت بتغيير إصدار برنامج appserv إلى الأحدث !! نفس المشكلة

هذه هي الرسالة :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; VALUES ('','','','')' at line 2

علماً بأني راجعت الكود أكثر من مرة بدقة ، وعرضت الكود على متخصص قال لي أن الكود صحيح 100% لا أعلم ما هي المشكلة ، حاولت بكل الطرق !

والكود هو :

<?php

include 'config.php';

/*

CREATE TABLE users (

u_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

u_name VARCHAR( 255 ) NOT NULL ,

u_password VARCHAR( 255 ) NOT NULL ,

u_email VARCHAR( 255 ) NOT NULL ,

u_about TEXT NOT NULL

) ENGINE = MYISAM ;

*/

=======================[ POST VALUE ]=======================

$u_name = $_POST['u_name'];

$u_password = $_POST['u_password'];

$u_email = $_POST['u_email'];

$u_about = $_POST['u_about'];

=======================[ POST VALUE ]=======================

if($_POST['register']){

$Adddb = mysql_query("INSERT INTO `mywebsite`.`users` 
(u_name,u_password,u_email,u_about);
VALUES
('$u_name','$u_password','$u_email','$u_about')
") or die(mysql_error());
if(isset($Adddb)){
    echo "<h3 style='color: green;'>Thank you for your register !</h3>";
    exit;
}

}

echo ' Username : Password : Eamil : About :

';

mysql_close();

?>

علما بأن config.php هو ملف الإتصال بقاعدة البيانات !! .. أرجو مساعدتي

تحياتي

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

شكراً إخواني تم حل المشكلة بنجاح .. أنتم العرب أفضل من stackoverflow

عدل على ملف config.php اضف السطر التالي

mysql_select_db("mywebsite"); 

لاختيار قاعدة البيانات والسطر التالي :

mysql_query("SET NAMES UTF8;");

لمعالجة المشاكل باللغة العربية وعدل الكود خاصتك ليصبح كالتالي :

$Adddb = mysql_query("INSERT INTO users (u_name,u_password,u_email,u_about); 
VALUES('$u_name','$u_password','$u_email','$u_about')") or die(mysql_error());  
if(isset($Adddb)){    
echo "<h3 style='color: green;'>Thank you for your register !</h3>";    
}   
mysql_query("COMMIT");    

حيث ان

mysql_query("COMMIT");     

لحفظ عملية الادخال .

عذراً قم بازالة الفاصلة المنقوطة من السطر الاول !

$Adddb = mysql_query("INSERT INTO users (u_name,u_password,u_email,u_about)
VALUES('$u_name','$u_password','$u_email','$u_about')") or die(mysql_error());  
if(isset($Adddb)){    
echo "<h3 style='color: green;'>Thank you for your register !</h3>";
}
mysql_query("COMMIT"); 

فعلت كل ما ذكرته .. ولكن ظهر لي رسالة أخرى : Column count doesn't match value count at row 1

يبدو اني لم اتقن التنسيق في اريبيا بعد :(

لكن يمكنك اخذ الكود ومسح ما هو مكتوب باللغة العربية

$Adddb = mysql_query("INSERT INTO users(u_name,u_password,u_email,u_about)
 VALUES('".$u_name."','".$u_password."','".$u_email."','".$u_about."')");

أخي هناك خطأ

لاحظ في السطر التالي في النهاية يوجد هناك هذا الرمز ;

(u_name,u_password,u_email,u_about);

ويجب ازالته ليصبح السطر هكذا

(u_name,u_password,u_email,u_about)

يبدو أنك تحاول إدخال رموز html مع النص لذلك لابد من استخدام دالة تقوم بإضافة باك سلاش قبل تلك الرموز لكي تسمح قاعدة البيانات بإدخال النص مع الرموز بدون مشاكل وهذه هي الدالة تفضل : وتضع بين القوسين المتغير الذي فيه النص أو متغير الفورم

addslashes()

-1

أنصحك أخي باستخدام الـــPDO