سلام دوستان
یه سوال از کسایی که php و mysql بلدن دارم.
من یه سایت دارم طراحی میکنم که توش از session دارم استفاده میکنم. سایتی که من درست کردم این طور عمل میکنه که توی یه صفحه کاربر میاد login میکنه ، وقتی login میکنه، کدهای php من به یه دیتا بیس از mysql کانکت میکنند. به شکل زیر:تو کد بالا متغیرهای $_POST[user_name] و $_POST[password] برابر اسم کاربری و پسورد شخصی هستند که کانکت میکنه. nemo هم اسم دیتا بیس هست.کد:$mysqli = new mysqli("localhost",$_POST['user_name'],$_POST['password'],"nemo")
تا اینجای کار هیچ مشکلی ندارم.
بعدش من محتویات متغیر $mysqli رو توی Session قرار میدم، بشکل زیر:این رو تا اینجا داشته باشید. حالا فرض کنید توی یه صفحۀ دیگه از سایت کاربر یه فرمی رو پر کرده که من میخوام این فرم رو توی یه table از دیتا بیس insert کنم. برای این کار من میام از کد زیر استفاده میکنم:کد:$_SESSION['link']=$mysqli;
تو کد بالا اونجایی که چند تا نقطه گذشتم کد مربوط به mysql هست که ربطی به مشکل من نداره. زمانی که کد رو اجرا میکنم یه پیغام به شکل زیر دریافت میکنم:کد:if ($_SESSION['link']->query("INSERT INTO……."));
همونطور که میبیند این اخطار میگه که متغیر mysqli رو نمیتویه واکشی کنه. حالا من میخوام بدونم دلیل این اخطار چیه. لازم به ذکره که من کدم رو اگه به شکل زیر بنویسم هیچ مشکلی ندارم:کد:Warning: mysqli::query() [function.mysqli-query]: Couldn't fetch mysqli in c:\Inetpub\wwwroot\insertprocess.php on line 26
تو کد بالا متغیرهای $_SESSION['user_name'],$_SESSION['password'] توی صفحۀ login سایت (همونی که اول در موردش بحث میکردم) به ترتیب برابر با $_POST['user_name'],$_POST['password'] قرار میگیرند. یعنی user name و password توشون ذخیره میشه.کد:$mysqli = new mysqli("localhost",$_SESSION['user_name'],$_SESSION['password'],"nemo");
if ($mysqli->query("INSERT INTO…….."));