PDA

View Full Version : سوال: مشکل در insert کردن داده های از نوع date به دیتابیس



esteftaats1368
شنبه 31 فروردین 1392, 23:34 عصر
با سلام دوستان عزیز.

من توی insert کردن به مشکل خوردم. یعنی داده ها وارد جدول نمیشن.

کد :



$username = "root";
$password="";
$db = mysql_connect("localhost",$username,$password);
if ($db)
{
$sdb = mysql_select_db('news',$db);
if($sdb)
{
$date = date("n t");
$time = time();
$sql = "insert into keys
(id,date,time) values
('0','$date','$time')";
$result = mysql_query($sql, $db);
echo"connected to mysql".'<br/>';
}
else
{
echo"database not found";
}

}
else
{
echo"not connected to mysql";
}

$cdb = mysql_close($db);
if (!$cdb)
{
echo"not connected to mysql";
}

خودم مطمئنم که مشکل از بخش insert into ...... باشه چون نوع داده ها رو وقتی به استرینگ تغییر دادم برنامه درست اجرا شد ولی وقتی خواستم نتیجه تابع date و time رو insert کنم به دیتابیس قبول نکرد.

فرزند کوروش
یک شنبه 01 اردیبهشت 1392, 09:07 صبح
ارور دیتابیس رو بگیر ببین چه پیامی چاپ میکنه


$result = mysql_query($sql, $db)or die( mysql_error() )

siavashsay
یک شنبه 01 اردیبهشت 1392, 10:00 صبح
یه سوال ؟!
چرا توی تابع date از n - t استفاده کردید ؟!
چه نیازی هست که تعداد روزهای ماه رو بدونید ؟!
احساس میکنم شما توی برنامه میخواید تعداد روزهای ماه رو بشمارید و بعدا مقداری رو محاسبه کنید !
اگه اینطوریه میتونید یک کار خیلی راحتتر بکنید !
اینکه تاریخ رو به صورت string بگیرید و توی دیتابیس ذخیره کنید !

$nData=date("Y-m-d");
بعد اون رو از دیتابیس بخونید و با تابع strtotime کار کنید !
با اینکار میتونید حد فاصل دو تاریخ رو حتی اگر روزهای یک ماه 28 - 29 - 30 - 31 هم باشه بدست بیارید ( توسط خود سیستم )
باز هم اگر راهنمایی بیشتر خواستید در خدمتم !
موفق باشید

MostafaEs3
یک شنبه 01 اردیبهشت 1392, 17:20 عصر
با سلام دوستان عزیز.

من توی insert کردن به مشکل خوردم. یعنی داده ها وارد جدول نمیشن.

کد :



$username = "root";
$password="";
$db = mysql_connect("localhost",$username,$password);
if ($db)
{
$sdb = mysql_select_db('news',$db);
if($sdb)
{
$date = date("n t");
$time = time();
$sql = "insert into keys
(id,date,time) values
('0','$date','$time')";
$result = mysql_query($sql, $db);
echo"connected to mysql".'<br/>';
}
else
{
echo"database not found";
}

}
else
{
echo"not connected to mysql";
}

$cdb = mysql_close($db);
if (!$cdb)
{
echo"not connected to mysql";
}

خودم مطمئنم که مشکل از بخش insert into ...... باشه چون نوع داده ها رو وقتی به استرینگ تغییر دادم برنامه درست اجرا شد ولی وقتی خواستم نتیجه تابع date و time رو insert کنم به دیتابیس قبول نکرد.

اگر نوع ستون در دیتابیس DATETIME هست میتونید بجای رشته از تابع ()NOW بطور مستقیم در کوئری استفاده کنید . همینطور بهتره عبارات کوئری مثل insert into رو با حروف بزرگ بنویسید ... همینطور بهتر هست ستون id رو بصورت AUTO_INCREMENT دربیارید که بطور خودکار شماره جدید درج بشه
--------------------------------------------
یک مثال برای کوئری ::


$sql = "INSERT INTO `keys` (date, time) VALUES ('{$date}', '{$time}')";