PDA

View Full Version : استفاده از pdo برای پایگاه داده



p30online
یک شنبه 20 بهمن 1392, 18:46 عصر
دوستان من تازه دارم با این دستورات آشنا می شوم دستورpdo

درست است یا نه ،این روش متصل شدن و نمایش دادن تعداد سطرها ؟



<?php
$db_username="root";
$db_password="";
$conn = new PDO('mysql:host=localhost;dbname=international', $db_username, $db_password);
?>





<?php
include('config.php');
$sth = $this->db->prepare("SELECT * FROM posts");



$data = $sth->fetch();

$count = $sth->rowCount();
echo $count;

?>

خطا می دهد!

mbf5923
یک شنبه 20 بهمن 1392, 19:12 عصر
<?php
$db_username="root";
$db_password="";
$conn = new PDO('mysql:host=localhost;dbname=international', $db_username, $db_password);
$sth = $conn->prepare("SELECT * FROM posts");
$sth->execute();



$data = $sth->fetch();

$count = $sth->rowCount();
echo $count;
?>

p30online
یک شنبه 20 بهمن 1392, 19:16 عصر
خیلی ممنون درست شد !

2undercover
یک شنبه 20 بهمن 1392, 20:31 عصر
خیلی ممنون درست شد !

وقتی نمی خواهید از مقدار های ورودی توی کوئری استفاده کنید یا اون کوئری رو چند بار اجرا بکنید می تونید به راحتی کوئری رو با متد query اجرا بکنید:

http://ir2.php.net/manual/en/pdo.query.php

beh3000
یک شنبه 20 بهمن 1392, 21:14 عصر
یه سوال بچه ها ::

وقتی از PDO استفاده میکنیم دیگه لازم نیست ورودی هایی که از کاربر میگیریم رو از توابعی مثل mysql_real_escape_string و یا stripslashes عبور بدیم ؟؟؟؟؟؟

SadeghPro19
دوشنبه 21 بهمن 1392, 05:34 صبح
نه خودش اینکار رو انجام میده البته باید توی کئوری بجای مقدار یا علامت سوال ? یا بدین شکل عمل کنیم field = :field و بعد با یک آرایه مقدار رو به متد execute یا bindParam میدیم تا خودش عملیات کنترل ورودی رو انجام بده البته فقط جلوگیری از Sql Injection انجام میشه و بقیه باگها مثل XSS رو خودتون باید جلوگیری کنید.
نمونه:

$data = $conn->prepare('SELECT * FROM users WHERE user_id = :user_id');
$data->execute(array('user_id' => $id));

beh3000
دوشنبه 21 بهمن 1392, 10:25 صبح
میشه بقیه باگهایی که میدونید رو اینجا بنویسید که در موردش تحقیق کنم و جلوگیری کنم ? فقط اسمشو بگید کافیه خودم درمیارم

1 . Xss
2 . ...
...

SadeghPro19
دوشنبه 21 بهمن 1392, 10:54 صبح
توی بخش امنیت هست..
از این تاپیک (http://barnamenevis.org/showthread.php?281805-%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AD%D9%85%D9%84%D9%87-%D9%87%D8%A7%DB%8C-%D9%86%D9%81%D9%88%D8%B0-%D9%88-%D8%B3%D9%88%D8%A1%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D 8%AF%D9%87-%D8%A7%D8%B2-%D8%B5%D9%81%D8%AD%D8%A7%D8%AA-%D9%88%D8%A8) هم میتونید استفاده کنید.