PDA

View Full Version : مشکل این کد



olampiad
پنج شنبه 04 اردیبهشت 1393, 21:34 عصر
سلام
به این کد یه نگا بندازید


$host='localhost';
$dbname='eshop12';
$user='root';
$pass='';
$db=new PDO("mysql:host=$host;dbname=$dbname",$user,$pass);

$query = "INSERT INTO `categories` (`id`,`title`) VALUES (:null,:password)";
$result = $db->prepare($query);
$result->execute(array('id'=>'4','title'=>'test'));


به تصویر بانک اطلاعاتی هم یه نگا بندازید
http://s5.picofile.com/file/8121165700/jj.png

به تصویر این ارور هم یه نگا بندازید.
http://s5.picofile.com/file/8121165768/kk.png

من دستور بالایی رو که از نوع pdo هستش واسه بانک اطلاعاتیم نوشتم
ولی کار نمکنه.
مشکلش از کجاست؟
ممنون

olampiad
پنج شنبه 04 اردیبهشت 1393, 22:27 عصر
یه سوال دیگه داشتم
به این کد یه نگا بندازید


<?php
echo file_exists("test.txt");
?>


تو اینجا کار تابع file_exists چیه؟
چرا مقدار 1 رو برمیگردونه
بی نهایت ممنون

aratoos
پنج شنبه 04 اردیبهشت 1393, 23:24 عصر
یه سوال دیگه داشتم
به این کد یه نگا بندازید


<?php
echo file_exists("test.txt");
?>


تو اینجا کار تابع file_exists چیه؟
چرا مقدار 1 رو برمیگردونه
بی نهایت ممنون

سوال اولتونو بلد نیستم ولی در این مورد یک مقدار true false برمیگردونه
اگه فایل وجود داشته باشه 1 در غیراینصورت چیزی برنمیگردونه

hamedarian2009
جمعه 05 اردیبهشت 1393, 09:56 صبح
سلام
به این کد یه نگا بندازید


$host='localhost';
$dbname='eshop12';
$user='root';
$pass='';
$db=new PDO("mysql:host=$host;dbname=$dbname",$user,$pass);

$query = "INSERT INTO `categories` (`id`,`title`) VALUES (:null,:password)";
$result = $db->prepare($query);
$result->execute(array('id'=>'4','title'=>'test'));


به تصویر بانک اطلاعاتی هم یه نگا بندازید
http://s5.picofile.com/file/8121165700/jj.png

به تصویر این ارور هم یه نگا بندازید.
http://s5.picofile.com/file/8121165768/kk.png

من دستور بالایی رو که از نوع pdo هستش واسه بانک اطلاعاتیم نوشتم
ولی کار نمکنه.
مشکلش از کجاست؟
ممنون
شما باید به مقادیری که قبلشون دوتا نقطه گزاشتی مقدار بدی نه فیلدها مثال زیر رو نگاه کن :


<?php
/* Execute a prepared statement by passing an array of insert values */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');
$sth->execute(array(':calories' => $calories, ':colour' => $colour));
?>

تو سوال دوم هم معلومه دیگه فقط بررسی میکنه اگه این فایل با این اسم تو مسیر داده شده وجو داشت مقدار true وگرنه مقدارش false هست یعنی به شما میگه همچین فایلی وجود داره یا نه

olampiad
جمعه 05 اردیبهشت 1393, 12:38 عصر
تشکر فراوان بابت پاسخ ها
به این دو نمونه یه نگا بندازید.
نمونه اول



$queryy="delete from `tb` where `id`= :id";
$ress=$connection->prepare($queryy);
$id=2;
$ress->bindParam(':id',$id);
$gg=$ress->execute();


و نمونه دوم



$queryy="delete from `tb` where `id`= :id";
$ress=$connection->prepare($queryy);
$id=2;
$gg=$ress->execute(array(":id"=>$id));


کدام یک از این روش ها بهتر هستند؟
بیشتر از کدام استفاده میکنن؟
ممنون

hamedarian2009
جمعه 05 اردیبهشت 1393, 16:12 عصر
روش اولی بهتره چون باعث میشه ورودی هایی که از کاربر می گیرین در برابر حمله sql injection مقاوم بشه

olampiad
جمعه 05 اردیبهشت 1393, 22:13 عصر
سلام
تشکر فراوان بابت پاسخ ها
به این کد ها یه نگا بندازید



CREATE PROCEDURE `sp_tb_SelectAll`()
BEGIN
SET NAMES UTF8;
SELECT `id`, `name`, `family` FROM `tb` ;
ENDCREATE PROCEDURE `sp_tb_SelectRow`(IN _id int)
BEGIN
SET NAMES UTF8;
SELECT `id`, `name`, `family` FROM `tb` WHERE `id` = _id;
ENDCREATE PROCEDURE `sp_tb_DeleteRow`(IN _id int)
BEGIN
DELETE FROM `tb` WHERE `id` = _id ;
END


اینا دیگه چه جور کوئری هایی هستن.
آیا این ها یه استاندارد هستن یا هر کس واسه خودش به وجود میاره.
میشه یه توضیح کوچیک بدید
بی نهایت ممنون

tux-world
جمعه 05 اردیبهشت 1393, 22:19 عصر
من دستور بالایی رو که از نوع pdo هستش واسه بانک اطلاعاتیم نوشتم ولی کار نمکنه. مشکلش از کجاست؟ ممنون کار نمیکنه یعنی چی؟؟؟؟؟؟ خطا میده؟ اجرا نمیشه؟ وصل نمیشه؟ داده نمیگیره؟ داده نمیفرسته؟

olampiad
جمعه 05 اردیبهشت 1393, 22:38 عصر
ببخشین من این همه سوال می پرسم
شرمنده خیلی کنجکاوم
اینا واقعا واسم سواله
یه سوال دیگه داشتم
به کد های پایین یه نگا بندازید
من این کد هارو از یه فریم ورک برداشتم
خواستم ببینم خودشون کد های کوئری شونو به این شکل درآوردن
یا این جور کدنویسی هم وجود داره.
الآن مثلا مفهوم این کد چیه؟
$query = "CALL sp_products_selectall()";
این چه جور کوئری هستش
ممنون




class PRODUCTS
{
public static function products_SelectAll()
{
$query = "CALL sp_products_selectall()";
return DatabaseHandler::GetAll($query);
}
public static function products_insert($title, $description, $image, $categorisID, $price, $count)
{
$query = "CALL sp_products_insert(:title, :description,:date,:image,:categoriesID,:price,:co unt)";
$params = array(':title' => $title,
':description' => $description,
':image' => $image,
':date' => time(),
':categoriesID' => $categorisID,
':price' => $price,
':count' => $count,

);
echo($query);
print_r($params);
DatabaseHandler::Close();
return DatabaseHandler::Execute($query, $params);
}
}