PDA

View Full Version : اجرا شدن کوئری pdo و ثبت نشدن در mysql



Mohammad-tashi
چهارشنبه 18 شهریور 1394, 19:47 عصر
ارر ندارم اما چیزی هم ثبت نمیشه؟1؟
مشکل چیه؟




<?php
//شروع یک نشست
session_start();

if ( (isset($_GET['logout'])) && ($_GET['logout'] == "true") )
{
unset ($_SESSION['username']);
header ("Location: login.php");


header("location:login.php");
}

//بررسی تنظیم شدن یا نشدن متغیرهای سشن
if (!isset($_SESSION['username']) || !isset($_SESSION['password'])){
//در صورتی که متغیرهای سشن تنظیم نشده باشند، کاربر مجاز به دیدن ادامه صفحه نیست و او را به صفحه اصلی منتقل می کنیم
header("location:login.php");
}
elseif(!$_SESSION['start'])
{
$_SESSION['start']=time();
}
else{
$time_now=time();
if($time_now > $_SESSION['end'])
{
unset($_SERVER['username']);
header("location:login.php?timeout");
}
}
?>


<?php
if ( isset($_POST['go']) && ($_POST['go'] == "add") )
{
include ('jdf.php');

$day_number = jdate('j');
$month_number = jdate('n');
$year_number = jdate('y');
$day_name = jdate('l');
$t2="$day_name ، $day_number-$month_number-$year_number";
$status="ok";
include "config.php";
$sql = "INSERT INTO posts(
post_title,
post_intro,
post_body,
post_date,
post_fadate,
post_status,
comment_count
VALUES (
:newstitle,
:editor1,
:editor2,
:endate,
:fadate
:status
:count
)";

$stmt = $conn->prepare($sql);

$stmt->bindParam(':newstitle', $_POST['newstitle'], PDO::PARAM_STR);
$stmt->bindParam(':editor1', $_POST['editor1'], PDO::PARAM_STR);
$stmt->bindParam(':editor2', $_POST['editor2'], PDO::PARAM_STR);
$stmt->bindParam(':endate', $time_now, PDO::PARAM_STR);

$stmt->bindParam(':fadata', $t2, PDO::PARAM_STR);

$stmt->bindParam(':status', $status, PDO::PARAM_STR);

$stmt->bindParam(':count', $status, PDO::PARAM_STR);








if ( $stmt )
{
$flag = '<div class="ok">خبر جدید با موفقیت ثبت شد.</div>';
}
else { $flag = '<div class="error">متاسفانه مشکلی در ثبت خبر جدید وجود دارد.</div>'; }
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="Mosaddek">
<meta name="keyword" content="FlatLab, Dashboard, Bootstrap, Admin, Template, Theme, Responsive, Fluid, Retina">
<link rel="shortcut icon" href="img/favicon.html">

<title>سامانه مدیریت وب سایت داده 24</title>

<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/bootstrap-reset.css" rel="stylesheet">
<!--external css-->
<link href="assets/font-awesome/css/font-awesome.css" rel="stylesheet" />
<link href="assets/jquery-easy-pie-chart/jquery.easy-pie-chart.css" rel="stylesheet" type="text/css" media="screen"/>
<link rel="stylesheet" href="css/owl.carousel.css" type="text/css">
<!-- Custom styles for this template -->
<link href="css/style.css" rel="stylesheet">
<link href="css/style-responsive.css" rel="stylesheet" />

<!-- HTML5 shim and Respond.js IE8 support of HTML5 tooltipss and media queries -->
<!--[if lt IE 9]>
<script src="js/html5shiv.js"></script>
<script src="js/respond.min.js"></script>
<![endif]-->


<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
<script src="ckeditor/_sample/sample.js" type="text/javascript"></script>
<link href="ckeditor/_sample/sample.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
//<![CDATA[

var editor, html = '';

function createEditor()
{
if ( editor )
return;


// Create a new editor inside the <div id="editor">, setting its value to html
var config = {};
editor = CKEDITOR.appendTo( 'editor', config, html );
}

function removeEditor()
{
if ( !editor )
return;

// Retrieve the editor contents. In an Ajax application, this data would be
// sent to the server or used in any other way.
document.getElementById( 'editorcontents' ).innerHTML = html = editor.getData();
document.getElementById( 'contents' ).style.display = '';

// Destroy the editor.
editor.destroy();
editor = null;
}

//]]>
</script>



</head>

<body>

<section id="container" class="">
<!--header start-->
<header class="header white-bg">
<div class="sidebar-toggle-box">
<div data-original-title="Toggle Navigation" data-placement="right" class="icon-reorder tooltips"></div>
</div>
<!--logo start-->
<a href="#" class="logo">فلت<span>لب</span></a>
<!--logo end-->
<div class="nav notify-row" id="top_menu">
<!-- notification start -->
<ul class="nav top-menu">
<!-- settings start -->
<li class="dropdown">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="icon-tasks"></i>
<span class="badge bg-success">6</span>
</a>
<ul class="dropdown-menu extended tasks-bar">
<div class="notify-arrow notify-arrow-green"></div>
<li>
<p class="green">شما 6 برنامه در دست کار دارید</p>
</li>
<li>
<a href="#">
<div class="task-info">
<div class="desc">پنل مدیریت</div>
<div class="percent">40%</div>
</div>
<div class="progress progress-striped">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 40%">
<span class="sr-only">40% Complete (success)</span>
</div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="task-info">
<div class="desc">بروزرسانی دیتابیس</div>
<div class="percent">60%</div>
</div>
<div class="progress progress-striped">
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%">
<span class="sr-only">60% Complete (warning)</span>
</div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="task-info">
<div class="desc">برنامه نویسی IPhone</div>
<div class="percent">87%</div>
</div>
<div class="progress progress-striped">
<div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: 87%">
<span class="sr-only">87% Complete</span>
</div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="task-info">
<div class="desc">برنامه موبایل</div>
<div class="percent">33%</div>
</div>
<div class="progress progress-striped">
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width: 33%">
<span class="sr-only">33% Complete (danger)</span>
</div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="task-info">
<div class="desc">پروفایل v1.3</div>
<div class="percent">45%</div>
</div>
<div class="progress progress-striped active">
<div class="progress-bar" role="progressbar" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100" style="width: 45%">
<span class="sr-only">45% Complete</span>
</div>
</div>

</a>
</li>
<li class="external">
<a href="#">برنامه های بیشتر</a>
</li>
</ul>
</li>
<!-- settings end -->
<!-- inbox dropdown start-->
<li id="header_inbox_bar" class="dropdown">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="icon-envelope-alt"></i>
<span class="badge bg-important">5</span>
</a>
<ul class="dropdown-menu extended inbox">
<div class="notify-arrow notify-arrow-red"></div>
<li>
<p class="red">شما 5 پیام جدید دارید</p>
</li>
<li>
<a href="#">
<span class="photo"><img alt="avatar" src="img/avatar-mini.jpg"></span>
<span class="subject">
<span class="from">سجاد باقرزاده</span>
<span class="time">همین حالا</span>
</span>
<span class="message">
سلام،متن پیام نمایشی جهت تست
</span>
</a>
</li>
<li>
<a href="#">
<span class="photo"><img alt="avatar" src="img/avatar-mini2.jpg"></span>
<span class="subject">
<span class="from">ایمان مدائنی</span>
<span class="time">10 دقیقه قبل</span>
</span>
<span class="message">
سلام، چطوری شما؟
</span>
</a>
</li>
<li>
<a href="#">
<span class="photo"><img alt="avatar" src="img/avatar-mini3.jpg"></span>
<span class="subject">
<span class="from">صبا ذاکر</span>
<span class="time">3 ساعت قبل</span>
</span>
<span class="message">
چه پنل مدیریتی فوق العاده ایی
</span>
</a>
</li>
<li>
<a href="#">
<span class="photo"><img alt="avatar" src="img/avatar-mini4.jpg"></span>
<span class="subject">
<span class="from">مسعود شریفی</span>
<span class="time">همین حالا</span>
</span>
<span class="message">
سلام،متن پیام نمایشی جهت تست
</span>
</a>
</li>
<li>
<a href="#">نمایش تمامی پیام ها</a>
</li>
</ul>
</li>
<!-- inbox dropdown end -->
<!-- notification dropdown start-->
<li id="header_notification_bar" class="dropdown">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">

<i class="icon-bell-alt"></i>
<span class="badge bg-warning">7</span>
</a>
<ul class="dropdown-menu extended notification">
<div class="notify-arrow notify-arrow-yellow"></div>
<li>
<p class="yellow">شما 7 اعلام جدید دارید</p>
</li>
<li>
<a href="#">
<span class="label label-danger"><i class="icon-bolt"></i></span>
سرور شماره 3 توقف کرده
<span class="small italic">34 دقیقه قبل</span>
</a>
</li>
<li>
<a href="#">
<span class="label label-warning"><i class="icon-bell"></i></span>
سرور شماره 4 بارگزاری نمی شود
<span class="small italic">1 ساعت قبل</span>
</a>
</li>
<li>
<a href="#">
<span class="label label-danger"><i class="icon-bolt"></i></span>
پنل مدیریت 24% پیشرفت داشته است
<span class="small italic">4 ساعت قبل</span>
</a>
</li>
<li>
<a href="#">
<span class="label label-success"><i class="icon-plus"></i></span>
ثبت نام کاربر جدید
<span class="small italic">همین حالا</span>
</a>
</li>
<li>
<a href="#">
<span class="label label-info"><i class="icon-bullhorn"></i></span>
برنامه پیام خطا دارد
<span class="small italic">10 دقیقه قبل</span>
</a>
</li>
<li>
<a href="#">نمایش تمامی اعلام ها</a>
</li>
</ul>
</li>
<!-- notification dropdown end -->
</ul>
<!-- notification end -->
</div>
<div class="top-nav ">
<!--search & user info start-->
<ul class="nav pull-right top-menu">
<li>
<input type="text" class="form-control search" placeholder="Search">
</li>
<li>


</li>
<!-- user login dropdown start-->
<li class="dropdown">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<img alt="" src="img/avatar1_small.jpg">
<span class="username">سجاد باقرزاده</span>
<b class="caret"></b>
</a>
<ul class="dropdown-menu extended logout">
<div class="log-arrow-up"></div>
<li><a href="#"><i class=" icon-suitcase"></i>پروفایل</a></li>
<li><a href="#"><i class="icon-cog"></i> تنظیمات</a></li>
<li><a href="#"><i class="icon-bell-alt"></i> اعلام ها</a></li>
<li><a href="?logout=true"><i class="icon-key"></i> خروج</a></li>
</ul>
</li>
<!-- user login dropdown end -->
<div style="margin-right:100px; margin-top:10px; width:300px; height:auto;">
</ul>
<!--search & user info end-->
</div>
</header>
<!--header end-->
<!--sidebar start-->
<aside>
<div id="sidebar" class="nav-collapse ">
<!-- sidebar menu start-->
<ul class="sidebar-menu">
<li class="active">
<a class="" href="admin.php">
<i class="icon-dashboard"></i>
<span>صفحه اصلی</span>
</a>
</li>
<li class="sub-menu">
<a href="javascript:;" class="">
<i class="icon-book"></i>
<span>بخش اخبار</span>
<span class="arrow"></span>
</a>
<ul class="sub">
<li><a class="" href="AddNews.php">خبر جدید</a></li>
<li><a class="" href="buttons.html">مدیریت اخبار</a></li>
</ul>
</li>
<li class="sub-menu">
<a href="javascript:;" class="">
<i class="icon-cogs"></i>
<span>پیام رسانی</span>
<span class="arrow"></span>
</a>
<ul class="sub">
<li><a class="" href="grids.html">مدیریت نظرات </a></li>
<li><a class="" href="calendar.html">ارسال ایمیل</a></li>

</ul>
</li>
<li class="sub-menu">
<a href="javascript:;" class="">
<i class="icon-tasks"></i>
<span>صفحات </span>
<span class="arrow"></span>
</a>
<ul class="sub">
<li><a class="" href="form_component.html">صفحه جدید</a></li>
<li><a class="" href="form_wizard.html">مدیریت صفحات</a></li>

</ul>
</li>
<li class="sub-menu">
<a href="javascript:;" class="">
<i class="icon-th"></i>
<span>گالری</span>
<span class="arrow"></span>
</a>
<ul class="sub">
<li><a class="" href="basic_table.html">جدول ساده</a></li>
<li><a class="" href="dynamic_table.html">جدول داینامیک</a></li>
</ul>
</li>
<li>
<a class="" href="inbox.html">
<i class="icon-envelope"></i>
<span>ایمیل </span>
<span class="label label-danger pull-right mail-info">2</span>
</a>
</li>
<li class="sub-menu">
<a href="javascript:;" class="">
<i class="icon-glass"></i>
<span>عناصر اضافی</span>
<span class="arrow"></span>
</a>
<ul class="sub">
<li><a class="" href="blank.html">صفحه خالی</a></li>
<li><a class="" href="profile.html">پروفایل</a></li>
<li><a class="" href="invoice.html">فاکتور</a></li>
<li><a class="" href="404.html">404 Error</a></li>
<li><a class="" href="500.html">500 Error</a></li>
</ul>
</li>
<li>
<a class="" href="login.html">
<i class="icon-user"></i>
<span>صفحه ورود به سایت</span>
</a>
</li>
</ul>
<!-- sidebar menu end-->
</div>
</aside>
<!--sidebar end-->
<!--main content start-->
<section id="main-content">
<section class="wrapper">
<!--state overview start-->

<?php
echo $_POST['editor1'];
?>


<form action="" method="post" />

<?php if( isset($_POST['go']) && !empty($flag)) {echo $flag; } ?> <br><br>


<div class="top-text">ارسال خبر جدید</div>
<input type="hidden" name="go" value="add">
<label for="newstitle"> عنوان خبر : </label>
<input name="newstitle" type="text" value="" class="form" />
<br /><br /><br />

<label for="content"> خلاصه خبر : </label>

<textarea cols="100" id="editor1" name="editor1" rows="10"></textarea>




<script type="text/javascript">
//<![CDATA[
// Replace the <textarea id="editor1"> with an CKEditor instance.
var editor = CKEDITOR.replace( 'editor1' );
//]]>
</script>
<label for="content"> متن خبر : </label>

<textarea cols="100" id="editor1" name="editor2" rows="20"></textarea>




<script type="text/javascript">
//<![CDATA[
// Replace the <textarea id="editor1"> with an CKEditor instance.
var editor = CKEDITOR.replace( 'editor2' );
//]]>
</script>
<input type="submit" value="ارسال" name="submit" />
</form>



<!--state overview end-->

<div class="row">
<div class="col-lg-8">
<!--custom chart start-->

<!--custom chart end-->
</div>
<div class="col-lg-4">
<!--new earning start-->

<script src="js/jquery.js"></script>
<script src="js/jquery-1.8.3.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/jquery.scrollTo.min.js"></script>
<script src="js/jquery.nicescroll.js" type="text/javascript"></script>
<script src="js/jquery.sparkline.js" type="text/javascript"></script>
<script src="assets/jquery-easy-pie-chart/jquery.easy-pie-chart.js"></script>
<script src="js/owl.carousel.js" ></script>
<script src="js/jquery.customSelect.min.js" ></script>

<!--common script for all pages-->
<script src="js/common-scripts.js"></script>

<!--script for this page-->
<script src="js/sparkline-chart.js"></script>
<script src="js/easy-pie-chart.js"></script>

<script>

//owl carousel

$(document).ready(function() {
$("#owl-demo").owlCarousel({
navigation : true,
slideSpeed : 300,
paginationSpeed : 400,
singleItem : true

});
});

//custom select box

$(function(){
$('select.styled').customSelect();
});

</script>

</body>
</html>

مهرداد سیف زاده
چهارشنبه 18 شهریور 1394, 20:52 عصر
میخواستم برات توضیح بدم کجا رو اشتباه نوشتی و باید چیکار کنی ولی انقدر وقت صرف باگ‌گیری همین چند خط کد شد که دیگه .....


$sql = "INSERT INTO posts(post_title,post_intro,post_body,post_fadate, post_status,comment_count)VALUES (:newstitle,:editor1,:editor2,:fadate,:status,:cou nt)";


$stmt = $conn->prepare($sql);


$stmt->bindParam(':newstitle', $_POST['newstitle'], PDO::PARAM_STR);
$stmt->bindParam(':editor1', $_POST['editor1'], PDO::PARAM_STR);
$stmt->bindParam(':editor2', $_POST['editor2'], PDO::PARAM_STR);
$stmt->bindParam(':fadate', $t2, PDO::PARAM_STR);
$stmt->bindParam(':status', $status);
$stmt->bindParam(':count', $status);


if ($stmt->execute()) {
$flag = '<div class="ok">خبر جدید با موفقیت ثبت شد.</div>';

از دیتابیس زیر استفاده کردم

CREATE TABLE `posts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`post_title` varchar(200) COLLATE ucs2_persian_ci NOT NULL,
`post_intro` varchar(200) COLLATE ucs2_persian_ci NOT NULL,
`post_body` text COLLATE ucs2_persian_ci NOT NULL,
`post_date` int(11) DEFAULT NULL,
`post_fadate` varchar(100) COLLATE ucs2_persian_ci NOT NULL,
`post_status` int(11) NOT NULL,
`comment_count` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=ucs2 COLLATE=ucs2_persian_ci

اگر تست کردید و درست نشد دیگه کل کد رو بزارید چون نمیدونم چطوری pdo رو کانفیگ کردید یا ساختار دیتابیس به چه صورت هست.

Mohammad-tashi
پنج شنبه 19 شهریور 1394, 05:25 صبح
سلام تست کردم درست نشد .یعنی توی بانک چیزی ثبت نمیشه


<?php
if ( isset($_POST['go']) && ($_POST['go'] == "add") )
{
include ('jdf.php');

$day_number = jdate('j');
$month_number = jdate('n');
$year_number = jdate('y');
$day_name = jdate('l');
$t2="$day_name ، $day_number-$month_number-$year_number";
$status="ok";
include "config.php";
$t2=jdate("روز: l - ساعت : H:i:s - تاریخ : Y/m/d");



$sql = "INSERT INTO posts(post_title,post_intro,post_body,post_fadate, post_status,comment_count)VALUES (:newstitle,:editor1,:editor2,:fadate,:status,:cou nt)";


$stmt = $conn->prepare($sql);


$stmt->bindParam(':newstitle', $_POST['newstitle'], PDO::PARAM_STR);
$stmt->bindParam(':editor1', $_POST['editor1'], PDO::PARAM_STR);
$stmt->bindParam(':editor2', $_POST['editor2'], PDO::PARAM_STR);
$stmt->bindParam(':fadate', $t2, PDO::PARAM_STR);
$stmt->bindParam(':status', $status);
$stmt->bindParam(':count', $status);
}



?>
کار نمیکنه
اگه این شرط


if ($stmt->execute()) {
$flag = '<div class="ok">خبر جدید با موفقیت ثبت شد.</div>';

}



بذارم ارر
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www
میده
ومحتوای فارسی صفحه بهم میریزه
فایل کانفیگم:

<?php
$host = "localhost";
$dbname = "mcc";
$usernamedb = "root";
$passworddb = "";

$conn = new PDO("mysql:host=$host;dbname=$dbname", $usernamedb, $passworddb);
if (!isset($conn)){
echo "خطای2!";
}
?>



خیلی ممنون میشم کمکم کنید/من تازه کارم و گفتم از همون اول با pdo کار کنم خیلی لنگ میزنم

مهرداد سیف زاده
پنج شنبه 19 شهریور 1394, 07:38 صبح
این خطا در زمانی رخ میده که تعداد فیلدها با پارمترها یکی نباشه. مثلا شما درون دستور INSERT اومدید ۱۰ تا فیلد تعریف کردید و در قسمت bindParam اومدی ۹ تا گذاشتی یا حتی برعکس.

Mohammad-tashi
پنج شنبه 19 شهریور 1394, 08:27 صبح
اونو الان چک میکنم که ببینم
اما وقتی اون if رو حذف میکنم هم چیزی ثبت نمیشه

Mohammad-tashi
پنج شنبه 19 شهریور 1394, 08:47 صبح
اینم کد php نهایی

<?php
if ( isset($_POST['go']) && ($_POST['go'] == "add") )
{
include ('jdf.php');

$day_number = jdate('j');
$month_number = jdate('n');
$year_number = jdate('y');
$day_name = jdate('l');
$t2="$day_name ، $day_number-$month_number-$year_number";
$status="ok";
include "config.php";
$t2=jdate("روز: l - ساعت : H:i:s - تاریخ : Y/m/d");



$sql = "INSERT INTO posts(post_title,post_intro,post_body,post_fadate, post_status,comment_count)VALUES (:newstitle,:editor1,:editor2,:fadate,:status,:cou nt)";


$stmt = $conn->prepare($sql);


$stmt->bindParam(':newstitle', $_POST['newstitle'], PDO::PARAM_STR);
$stmt->bindParam(':editor1', $_POST['editor1'], PDO::PARAM_STR);
$stmt->bindParam(':editor2', $_POST['editor2'], PDO::PARAM_STR);
$stmt->bindParam(':fadate', $t2, PDO::PARAM_STR);
$stmt->bindParam(':status', $status);
$stmt->bindParam(':count', $status);
}

if ($stmt->execute()) {
$flag = '<div class="ok">خبر جدید با موفقیت ثبت شد.</div>';

}


?>
ارر زیر رو دارم و چیزی هم در بانک ثبت نمیشه


! ) Notice: Undefined variable: stmt in C:\wamp\www\mycms\admin12a\AddNews.php on line 66


Call Stack


#
Time
Memory
Function
Location


1
0.0008
176248
{main}( )
..\AddNews.php:0





( ! ) Fatal error: Call to a member function execute() on a non-object in C:\wamp\www\mycms\admin12a\AddNews.php on line 66


Call Stack


#
Time
Memory
Function
Location


1
0.0008
176248
{main}( )
..\AddNews.php:0

مهرداد سیف زاده
پنج شنبه 19 شهریور 1394, 18:32 عصر
این خطا یعنی اصلا با mysql‌در ارتباط نیستید
فایل config.php رو بصورت زیر بنویسید


<?php
try {


$dsn = 'mysql:host=localhost;dbname=test';
$username = 'root';
$password = '123';
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);


$conn = new PDO($dsn, $username, $password, $options);


} catch (Exception $e) {
echo $e->getMessage();
}