ذخیره نشدن در دیتابیس

سوال

با سلام!

من میخوام وقتی میدر سایت یکی از گذینه هارو انتخاب میکنه اون گذینه در دیتابیس ذخیره بشه اما هر کاری کردم نشد

<?php
	$rang = $_REQUEST["reder"];
    if( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' ) {
        $dsn = 'mysql:dbname=admincolor;host=localhost;port=3306';
        $username = 'root';
        $password = '';
		
        try {
            $db = new PDO( $dsn, $username, $password );
            $db->exec( "SET CHARACTER SET utf8" );
        } catch( PDOException $e ) {
            die( 'رخداد خطا در هنگام ارتباط با پایگاه داده:<br>' . $e );
        }
        $stmt = $db->prepare( "INSERT INTO color ( $rang ) VALUES ( coloradmin )" );
        $stmt->bindValue( 1, $_POST[ 'reder' ] );
        $stmt->execute();
        $signup = true;
    } else {
        $signup = false;
    }
?>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link type="text/css" href="css/font-awesome.min.css" rel="stylesheet" />
	<!-- AM Menu CSS -->
	<link type="text/css" href="css/am-menu.css" rel="stylesheet" />
	<!-- Custom CSS-->
	<link type="text/css" href="css/demo-style.css" rel="stylesheet" />
</head>
<body>
	<form action="#" method="post">
		<input value="قرمز" name="reder" type="radio" Autocomplete="off">قرمز <br>
		<input value="ابی" name="reder" type="radio" Autocomplete="off">  ابی <br>
		<input value="ok" name="oktologin" type="submit">
	</form>
</body><!-- This template has been downloaded from Webrubik.com -->
</html>

 

در حال بررسی 0
2021-01-22T15:47:44+03:30 9 پاسخ کاربر تازه 0

پاسخ ها ( 9 )

    0
    2021-01-23T23:19:06+03:30

    سلام

    شما در کوئری Insert باید به شکل زیر عمل کنید:

    INSERT INTO tbl_name (name,family) VALUES($name,$family)

    یعنی باید نام فلید مورد نظر از جدول دیتابیس رو بنویسید، من الان در کوئری بالا از جدول tbl_name دو فیلد name,family رو انتخاب کردم.

    ولی شما در کوئری؛ نام فیلد رو ذکر نکردید و متغیر rang$ رو نوشتید!

    موفق باشید.

    0
    2021-01-25T10:18:08+03:30

    با سلام!

    من الان کوئری رو ویرایش کردم و الان اطلاعات در دیتابیس ذخیره میشن اما نه درست!

    فیلد coloradmin خالی می مونه و هیچ چیز توی اون ذخیره نمیشه!

    که بتونم دوباره از دیتابیس درخواستش کنم.

    0
    2021-01-26T09:54:05+03:30

    با سلام!

    بفرمایید…

    <?php
    	//$rang = $_REQUEST["reder"];
        if( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' ) {
            $dsn = 'mysql:dbname=admincolor;host=localhost;port=3306';
            $username = 'root';
            $password = '';
    		
            try {
                $db = new PDO( $dsn, $username, $password );
                $db->exec( "SET CHARACTER SET utf8" );
            } catch( PDOException $e ) {
                die( 'رخداد خطا در هنگام ارتباط با پایگاه داده:<br>' . $e );
            }
            $stmt = $db->prepare( "INSERT INTO color (coloradmin) VALUES(redet)" );
            $stmt->bindValue( 1, $_POST[ 'reder' ] );
            $stmt->execute();
            $signup = true;
        } else {
            $signup = false;
        }
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="utf-8">
    	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    	<meta name="viewport" content="width=device-width, initial-scale=1">
    	<link type="text/css" href="css/font-awesome.min.css" rel="stylesheet" />
    	<!-- AM Menu CSS -->
    	<link type="text/css" href="css/am-menu.css" rel="stylesheet" />
    	<!-- Custom CSS-->
    	<link type="text/css" href="css/demo-style.css" rel="stylesheet" />
    </head>
    <body>
    	<form action="#" method="post">
    		<input value="قرمز" name="reder" type="radio" Autocomplete="off">قرمز <br>
    		<input value="ابی" name="reder" type="radio" Autocomplete="off">  ابی <br>
    		<input value="ok" name="oktologin" type="submit">
    	</form>
    </body><!-- This template has been downloaded from Webrubik.com -->
    </html>

     

      0
      2021-01-27T22:48:01+03:30

      سلام

      در خط 14 غلط املایی دارید، بجای reder از redet نوشتید!

      همچنین قبل از خط 14 تکه کد زیر رو قرار بدید:

      var_dump($_POST[ 'reder'];); exit();

      بعد که کد بالا رو قرار دادید، فرم رو پر کنید و ارسال کنید اگر مقدار reder دیدید قرمز یا آبی هست که درسته تکه کد را پاک کنید، اگه دیدید که مقدار NULL هست در دریافت مقادیر از input هنوز مشکل پابرجاست

      موفق باشید.

    0
    2021-01-28T10:47:21+03:30

    با سلام!

    خطا در خط 14 ….

    Parse error: syntax error, unexpected ';', expecting ')' in C:\xampp\htdocs\heder\test.php on line 14

    کد ها رو اونجور که گفتین ویرایش کردم اما هنوز ارور میده

    کد ها….

    <?php
    	//$rang = $_REQUEST["reder"];
        if( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' ) {
            $dsn = 'mysql:dbname=admincolor;host=localhost;port=3306';
            $username = 'root';
            $password = '';
    		
            try {
                $db = new PDO( $dsn, $username, $password );
                $db->exec( "SET CHARACTER SET utf8" );
            } catch( PDOException $e ) {
                die( 'رخداد خطا در هنگام ارتباط با پایگاه داده:<br>' . $e );
            }
    		var_dump($_POST[ 'reder'];); exit();
            $stmt = $db->prepare( "INSERT INTO color (coloradmin) VALUES(reder)" );
            $stmt->bindValue( 1, $_POST[ 'reder' ] );
            $stmt->execute();
            $signup = true;
        } else {
            $signup = false;
        }
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="utf-8">
    	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    	<meta name="viewport" content="width=device-width, initial-scale=1">
    	<link type="text/css" href="css/font-awesome.min.css" rel="stylesheet" />
    	<!-- AM Menu CSS -->
    	<link type="text/css" href="css/am-menu.css" rel="stylesheet" />
    	<!-- Custom CSS-->
    	<link type="text/css" href="css/demo-style.css" rel="stylesheet" />
    </head>
    <body>
    	<form action="#" method="post">
    		<input value="قرمز" name="reder" type="radio" Autocomplete="off">قرمز <br>
    		<input value="ابی" name="reder" type="radio" Autocomplete="off">  ابی <br>
    		<input value="ok" name="oktologin" type="submit">
    	</form>
    </body><!-- This template has been downloaded from Webrubik.com -->
    </html>

     

     

    0
    2021-02-08T17:25:05+03:30

    با سلام!

    این عبارت رو نشون میده

    string(8) "قرمز"

     

      0
      2021-02-08T20:15:22+03:30

      سلام درسته پس

      اون خط کد رو حذف و امتحان کنید؛ این بار باید به درستی در دیتابیس ذخیره بشه

    0
    2021-02-10T12:09:47+03:30

    با سلام!

    هنوز جدول دیتابیس من خالی هست وهیچ چیزی در قسمت admincolor وجود ندارد

    0
    2021-02-10T19:35:25+03:30

    با سلام!

    بفرمایید….

    SELECT * FROM `color` WHERE 1

    و

    -- phpMyAdmin SQL Dump
    -- version 5.0.2
    -- https://www.phpmyadmin.net/
    --
    -- Host: 127.0.0.1
    -- Generation Time: Feb 10, 2021 at 04:55 PM
    -- Server version: 10.4.13-MariaDB
    -- PHP Version: 7.4.8
    
    SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
    START TRANSACTION;
    SET time_zone = "+00:00";
    
    
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8mb4 */;
    
    --
    -- Database: `admincolor`
    --
    
    -- --------------------------------------------------------
    
    --
    -- Table structure for table `color`
    --
    
    CREATE TABLE `color` (
      `id` int(11) NOT NULL,
      `coloradmin` varchar(100) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    
    --
    -- Dumping data for table `color`
    --
    
    INSERT INTO `color` (`id`, `coloradmin`) VALUES
    (3, '');
    
    --
    -- Indexes for dumped tables
    --
    
    --
    -- Indexes for table `color`
    --
    ALTER TABLE `color`
      ADD PRIMARY KEY (`id`);
    
    --
    -- AUTO_INCREMENT for dumped tables
    --
    
    --
    -- AUTO_INCREMENT for table `color`
    --
    ALTER TABLE `color`
      MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
    COMMIT;
    
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    

    کد های صفحه php هم همون هایی هست که قبلا قرار دادم

     

    0
    2021-02-14T19:28:15+03:30

    با سلام!

    دیتابیس

    و

    فایل php

      0
      2021-02-19T21:05:55+03:30

      سلام

      شما وقتی که میخواید از bindvalue استفاده کنید، دیگه نباید در کوئری مقدار رو پاس بدی، مقدار رو باید به عنوان علامت ؟ پاس بدی و بعد با bindvalue مقدار رو بگیری و از فیلتر رد کنی، بعد تو دیتابیس ذخیره کنید.

      پس کوئری زیر را:

              $stmt = $db->prepare( "INSERT INTO color (coloradmin) VALUES(reder)" );

      به کوئری زیر تغییر دهید:

              $stmt = $db->prepare( "INSERT INTO color (coloradmin) VALUES(?)" );

      موفق باشید.

       

    0
    2021-02-21T11:04:19+03:30

    با سلام!

    بازم ذخیره نشد!

      0
      2021-02-26T18:48:00+03:30

      سلام

      مشکلی وجود نداره و باید ذخیره بشه ..

      <?php
      	//$rang = $_REQUEST["reder"];
          if( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' ) {
              $dsn = 'mysql:dbname=color;host=localhost;port=3306';
              $username = 'root';
              $password = '';
      		
              try {
                  $db = new PDO( $dsn, $username, $password );
                  $db->exec( "SET CHARACTER SET utf8" );
              } catch( PDOException $e ) {
                  die( 'رخداد خطا در هنگام ارتباط با پایگاه داده:<br>' . $e );
              }
      		//var_dump($_POST[ 'reder']); exit();
              $stmt = $db->prepare( "INSERT INTO color (coloradmin) VALUES(?)" );
              $stmt->bindValue( 1, $_POST['reder']);
              $stmt->execute();
              $signup = true;
          }
      ?>
      <!DOCTYPE html>
      <html lang="en">
      <head>
      	<meta charset="utf-8">
      	<meta http-equiv="X-UA-Compatible" content="IE=edge">
      	<meta name="viewport" content="width=device-width, initial-scale=1">
      	<link type="text/css" href="css/font-awesome.min.css" rel="stylesheet" />
      	<!-- AM Menu CSS -->
      	<link type="text/css" href="css/am-menu.css" rel="stylesheet" />
      	<!-- Custom CSS-->
      	<link type="text/css" href="css/demo-style.css" rel="stylesheet" />
      </head>
      <body>
      	<form action="#" method="post">
      		<input value="red" name="reder" type="radio" Autocomplete="off">قرمز <br>
      		<input value="blue" name="reder" type="radio" Autocomplete="off">  ابی <br>
      		<input value="ok" name="oktologin" type="submit">
      	</form>
      </body><!-- This template has been downloaded from Webrubik.com -->
      </html>

       

ارسال یک پاسخ