• 26-12-2012, 21:13:30
    #1
    Merhaba arkadaşlar çok basit bir veri girişi post edip mysql de ve aynısının pdo'da kaydını yaptığı bir sayfayı mysqli'ye çevirme konusunda yardımcı olabilecek bir arkadaş varsa bu konu hakkında bilgilendirme yaparsa memnun olurum.

    Örnek olarak Mysql hali

    add.html
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    </HEAD>
    
    <BODY>
    <form name="frm" method="post" action="add.php">
    Plate: <input type="text" name="pl" maxlength="6" size="8"><br/>
    Make:  <input type="text" name="mk" maxlength="20" size="24"><br/>
    Model: <input type="text" name="md" maxlength="10" size="12"><br/>
    <input type="submit" value="Save">
    </form>
    </BODY>
    </HTML>
    add.php
    <?php
    extract($_POST);
    //$pl=$_POST['pl'];
    //$mk=$_POST['mk'];
    //$md=$_POST['md'];
    
    if (strlen(trim($pl))==0)
     die("Plate can not be blank");
    
    
    //1. connect
    $cnn=mysql_connect("localhost","caruser","driver") or die('Connection failed');
    
    //2. choose db
    mysql_select_db("autos",$cnn) or die('Db Failed');
    
    //3. prepare & run query
    $q="insert into cars(plate,make,model) values('$pl','$mk','$md')";
    
    $r=mysql_query($q,$cnn) or die('Query failed. '.mysql_error());
    
    if (mysql_affected_rows($cnn)>0)
     echo "Record Saved";
    else
     echo "Something else happened";
    
    //5. close connection
     mysql_close($cnn);
    ?>
    Sql
    -- phpMyAdmin SQL Dump
    -- version 3.2.0.1
    -- http://www.phpmyadmin.net
    --
    -- Host: localhost
    -- Generation Time: Dec 05, 2012 at 02:00 PM
    -- Server version: 5.1.36
    -- PHP Version: 5.3.0
    
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
    
    
    /*!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 utf8 */;
    
    --
    -- Database: `autos`
    --
    
    CREATE DATABASE `autos` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
    USE `autos`;
    
    CREATE USER 'caruser'@'localhost' IDENTIFIED BY 'driver';
    GRANT SELECT , INSERT , UPDATE , DELETE ON `autos` . * TO 'caruser'@'localhost';
    
    
    
    
    
    
    -- --------------------------------------------------------
    
    --
    -- Table structure for table `cars`
    --
    
    DROP TABLE IF EXISTS `cars`;
    CREATE TABLE IF NOT EXISTS `cars` (
      `plate` char(6) NOT NULL,
      `make` varchar(20) NOT NULL,
      `model` varchar(10) NOT NULL,
      PRIMARY KEY (`plate`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    
    --
    -- Dumping data for table `cars`
    --
    
    INSERT INTO `cars` (`plate`, `make`, `model`) VALUES
    ('U782', 'TOFAS', 'HACI MURAT'),
    ('2', 'Toyota', 'Camry'),
    ('21', 'Q', 'W');
  • 26-12-2012, 22:23:14
    #2
    Üyeliği durduruldu
    $mysqli = new mysqli("localhost", "kullanıcı adı", "şifre", "db");
    if (mysqli_connect_errno()) {
    echo 'bağlantı hatası';
    exit();
    }

    $stmt = $mysqli->prepare("INSERT INTO cars(plate,make,model) VALUES (?,?,?)");
    $stmt->bind_param("sss",$degisken1,$degisken2,$degisken3 );

    $stmt->execute();
    echo $stmt->affected_rows;

    $stmt->close();

    $mysqli->close();

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 22:22:09 -->-> Daha önceki mesaj 22:21:03 --

    bind paramn başındaki "sss" ler field tipi string yada int string ise s int ise i sağınada göndericeğimiz şeyleri gönderiyoruz sonra execute diyerek işlemlerimizi gerçekleştiriyoruz

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 22:23:14 -->-> Daha önceki mesaj 22:22:09 --

    buda escape
    $degisken = $mysqli->real_escape_string($degisken);
  • 27-12-2012, 23:37:57
    #3
    RobinsonCrusoe adlı üyeden alıntı: mesajı görüntüle
    $mysqli = new mysqli("localhost", "kullanıcı adı", "şifre", "db");
    if (mysqli_connect_errno()) {
    echo 'bağlantı hatası';
    exit();
    }

    $stmt = $mysqli->prepare("INSERT INTO cars(plate,make,model) VALUES (?,?,?)");
    $stmt->bind_param("sss",$degisken1,$degisken2,$degisken3 );

    $stmt->execute();
    echo $stmt->affected_rows;

    $stmt->close();

    $mysqli->close();

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 22:22:09 -->-> Daha önceki mesaj 22:21:03 --

    bind paramn başındaki "sss" ler field tipi string yada int string ise s int ise i sağınada göndericeğimiz şeyleri gönderiyoruz sonra execute diyerek işlemlerimizi gerçekleştiriyoruz

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 22:23:14 -->-> Daha önceki mesaj 22:22:09 --

    buda escape
    $degisken = $mysqli->real_escape_string($degisken);


    hocam çok teşekkür ederiz bir sorum daha olacak bu mantık ile listeleme yaptığımız bir sayfadaki mysql bağlantısını mysqli'ye çevirmeyi nasıl yapabiliriz peki ?


    Örnek Listeleme mysql bağlantılı hali aşağıda
    <?php
    //1. connect
    $cnn=mysql_connect("localhost","caruser","driver") or die('Connection failed');
    
    //2. choose db
    mysql_select_db("autos",$cnn) or die('Db Failed');
    
    //3. prepare & run query
    $q="select * from cars";
    $r=mysql_query($q,$cnn) or die('Query failed');
    //4. list items
    if (mysql_num_rows($r)>0) // if records exist
    {
    	echo '<table border="1"><tr><th>Plate</th><th>Make</th><th>Model</th></tr>';
    	while($rec=mysql_fetch_array($r,MYSQL_ASSOC))
    	{
    		echo '<tr>';
    		echo '<td>'.$rec['plate'].'</td>';
    		echo '<td>'.$rec['make'].'</td>';
    		echo '<td>'.$rec['model'].'</td>';
    		echo '</tr>';
    	}
    
    	echo '</table><br/>';
    }
     echo mysql_num_rows($r).' record(s) found';
    //5. close connection
     mysql_close($cnn);
    ?>