PDA

View Full Version : سوال: مشکل در وارد کردن یک عدد رندوم در پایگاه داده



ABZiko
سه شنبه 21 بهمن 1393, 16:15 عصر
سلام، بنده کوئری زیر رو نوشتم :


"INSERT INTO user VALUES(null,'$firstName','$lastName','$mail',$rand om)";

و این هم مربوط به عدد رندوم هستش :


$random=rand(0,999999);


حالا وقتی می خوام کاربر رو ثبت کنم، ارور می ده، کوئریم رو مطمئنم اشتباه نوشتم، می شه راهنمایی کنید؟

martoor
سه شنبه 21 بهمن 1393, 16:19 عصر
کوئری رو به این صورت بنویسید :
INSERT INTO user (firstname, lastname, mail, randcode) VALUES ('$firstName','$lastName','$mail','$rand')

اگه خطا داشت متن خطا رو بذارید .

ABZiko
سه شنبه 21 بهمن 1393, 16:26 عصر
اینطوری نوشتم :


$sql="INSERT INTO user VALUES(null,'$firstName','$lastName','$mail','$ran dom')";

این ارور رو داد :





( ! ) Notice: Undefined variable: random in D:\Wamp\www\PDO\User.php on line 8


Call Stack


#
Time
Memory
Function
Location


1
0.0005
265592
{main}( )
..\Initial.php:0


2
0.0013
303448
User->addUser( )
..\Initial.php:6





( ! ) Notice: Undefined variable: result in D:\Wamp\www\PDO\Initial.php on line 7


Call Stack


#
Time
Memory
Function
Location


1
0.0005
265592
{main}( )
..\Initial.php:0


A Problem !



( ! ) Fatal error: Call to a member function fetch() on a non-object in D:\Wamp\www\PDO\Database.php on line 49


Call Stack


#
Time
Memory
Function
Location


1
0.0005
265592
{main}( )
..\Initial.php:0


2
0.0261
311064
User->getUser( )
..\Initial.php:15


3
0.0261
311192
Database::FetchOne( )
..\User.php:17

ABZiko
سه شنبه 21 بهمن 1393, 16:34 عصر
اون پیغام دومی و سومی رو درست کردم، و ربطی نداشت، فقط همون ارور اول ! راستی من از کد SQL رو به صورت MVC نوشتم و اون کد در کلاسم هست.

ABZiko
سه شنبه 21 بهمن 1393, 16:38 عصر
$random=rand(0,999999);
class User{
public function __construct(){}

public function addUser($firstName,$lastName,$mail){
$sql="INSERT INTO user VALUES(null,'$firstName','$lastName','$mail','$ran dom')";
$con=Database::Execute($sql);}}

martoor
سه شنبه 21 بهمن 1393, 16:43 عصر
والله چیزی که من دارم می بینم خبری از خطای mysql نیست، همه خطا های php هستند، کلاس pdo تون رو درست با سیستم ست کردین ؟

ABZiko
سه شنبه 21 بهمن 1393, 16:46 عصر
همه چی درست هست، بعد از اینکه این کد رندوم رو اضافه کردم این ارور رو می ده

ABZiko
سه شنبه 21 بهمن 1393, 16:49 عصر
با همین کد جدید هم که نوشتم و با اینکه ارور می ده، ثبت می کنه ولی فیلد IC، عدد 0 صفر رو نشون می ده و این یعنی اینکه در قسمت متغیر داخل کوئریم یک اشتباهی هست.

ABZiko
سه شنبه 21 بهمن 1393, 17:42 عصر
دوستان لطفا کمک کنید

id1385
سه شنبه 21 بهمن 1393, 17:42 عصر
خب شما اولاً متغیر رندم رو خارج از محدوده کلاس تعریف کردید و بهش ارجاع ندادید، توی متد adduser متغیر random رو بهش اضافه کنید و وقتی متد رو قراخونی میکنید اونو پاس بدید علت خطای شما همین است که متد به متغیر دسترسی نداره هرچند که شما عملاً قبل از کلاس معرفی کردید ولی چون حارج از محدوده هست خطا ایجاد میشه.




class User{
public function __construct(){}

public function addUser($firstName,$lastName,$mail, $random){
$sql="INSERT INTO user VALUES(null,'$firstName','$lastName','$mail','$ran dom')";
$con=Database::Execute($sql);}}


$random=rand(0,999999);
$cls = new User();
$cls->addUser("a","b","mail", $random);

hamedarian2009
سه شنبه 21 بهمن 1393, 17:43 عصر
برای اینکه از کوئری مطمئن باشین بهتره یکبار توی phpmyadmin به صورت دستی مقدار وارد کنید و کوئری insert که phpmyadmin بهتون میده رو بیارین اینجا استفاده کنید فقط کافیه مقادیر دستی رو با متغیرها مقداردهی کنید

ABZiko
سه شنبه 21 بهمن 1393, 18:10 عصر
واقعا از هردو عزیز ممنونم.