PDA

View Full Version : کسی میدونه مشکل این کد از کجاست ؟



farshidtm
پنج شنبه 12 مرداد 1396, 04:25 صبح
سلام من یه اینسرت اینتو برای پروژه درسی دارم تمرین می کنم نمی دونم چرا ارور میده هم طبق فیلم آموزشیه جلو رفتم میشه اساتید یه راهنمایی بکنید با تشکر


<?php
require 'config.php';
if(isset($_POST['submit'])) {
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];
$stmt->prepare("INSERT INTO user (fname,lname,email) VALUES (:fname,:lname:,:email)");
$stmt->bindParm(':fname' , $fname);
$stmt->bindParm(':lname' , $lname);
$stmt->bindParm(':email' , $email);
$stmt->execute();
if($stmt){
echo 'ok';
}
}
?>
<html>
<head>
<title>insert</title>
</head>
<body>
<div align="center">
<form action="" method="POST">
name : <input type="text" name="fname"/> <br />
family : <input type="text" name="lname"/><br/>
email : <input type="email" name="email"/><br/>
age : <input type="number" name="age"/><br />
gender : <select name="gender">
<option>Men</option>
<option>Women</option>
</select><br />
address : <textarea name="address"></textarea><br />
<input type="submit" name="submit" value="submit"/>
</form>
</div>
</body>
</html>

farshidtm
پنج شنبه 12 مرداد 1396, 04:29 صبح
این خروجی رو میده

Notice: Undefined variable: stmt in D:\xampp\htdocs\PDO\insert.php on line 7

Fatal error: Call to a member function prepare() on null in D:\xampp\htdocs\PDO\insert.php on line 7

plague
پنج شنبه 12 مرداد 1396, 15:24 عصر
خط و مشکل روداره میگه , $stmt از کجا اومده ؟
نمیدونم از رو چی داری یاد میگیری ولی برو دوباره نگاه کن چجوری شروع میشه

ali_wolfman
پنج شنبه 12 مرداد 1396, 20:27 عصر
سلام
$stmt
باید ی پی دی او استیتمنت باشه
فایل config رو هم بزار تا کمکت کنم

Keramatifar
پنج شنبه 19 مرداد 1396, 06:05 صبح
دوست عزیز
از روی دوره کدوم استاد داری کار می کنی؟ (کنجکاوی به این دلیله که کدها شباهت 60-70 درصدی به دست خط من و سمپل کلاس های PHP اینجانب دارد. )
به هر حال مشکل از اونجاست که که احتمالا $stmt شما که یک instance از آبجکت PDO می باشد یا جا مونده یا در فایل config.php ایجاد شده.
در فایل config.php دنبال کدی شبیه به کد زیر بگرد و اگر پیدا کردی از اونجا cut و در خط 2 همین فایل past کن و اگر هم پیدا نکردی همین خط کد زیر رو در خط 2 قرار بده و پارامترهاش رو تنظیم کن

$pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass);