2014-09-26 2 views
0

나는 php와 sql에서 아주 새로운데, 몇 년 전에 배우기 만했지만 멈추고 업데이트하지는 않는다. 이것은 사용자 이름 및 암호와 같은 사용자 정보를 가져와야하는 이전 코드입니다.Mysql에서 Mysqli로 변경된 사항

$myemail= $_POST['myemail']; 
$mypassword= $_POST['mypassword']; 

$sql= "SELECT * FROM user WHERE myemail='".$myemail."' and mypassword='".$mypassword."'"; 
$result=mysql_query($sql); 
$count=mysql_num_rows($result); 

if($count==1) 
    { 
    $_SESSION['username']=$username; 
    $_SESSION['logged-in'] = true; 
    header("location:index.php"); 
    exit; 
    } 

어떻게 위와 같이, 내가 사용하는 것은 mysql입니다. 이 코드를 mysqli로 바꾸는 법을 배우고 싶다. 나는 ws3school에서 배운, 및 이러한처럼 가지고 :

mysqli_query($con,"SELECT * FROM user"); 

하지만 난 그런 당신은 기본적으로에서입니다을두고 있지만 연결을 당길 수있는 WHERE myemail='".$myemail."' and mypassword='".$mypassword."'";

+0

질문은 : 당신이 준비된 문으로 이동하거나 mysqli이 코드를 변경 하시겠습니까? – Naruto

+0

둘 다 데려다 줄 수 있겠 니? :) –

+0

준비된 문구와 함께 가라! 현재 스크립트는 ** 매우 ** 취약한 ** – FrancescoMM

답변

0

으로 나머지 코드 박히 in.

MySQLi (향상된 기능)는 여전히 동일한 SQL 문을 사용하므로 여전히 동일하게 동적으로 작성할 수 있습니다. 당신은 당신이 또한 코드의 나머지 부분은 객체 지향 특히 경우, 약간의 깔끔한 보이는이 같은 두 번째 줄을 쓸 수

$sql = "SELECT * FROM user WHERE myemail='".$myemail."' and mypassword='".$mypassword."'"; 
$result=mysql_query($con, $sql); 

주를 사용하고자하는 연결을 정확하게 지정해야합니다.

$result = $con->query($sql); 
2

mysqli를 사용하면 검색어를 준비해야합니다.이 정보는 문서에 있습니다. 여기

은 예입니다

<?php 
$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 

/* check connection */ 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$myemail= $_POST['myemail']; 
$mypassword= $_POST['mypassword']; 

$sql= "SELECT * FROM user WHERE myemail = ? and mypassword = ?"; 
/* create a prepared statement */ 
if ($stmt = $mysqli->prepare($sql)) { 

    /* bind parameters for markers */ 
    $stmt->bind_param("ss", $myemail, $mypassword); 

    /* execute query */ 
    $stmt->execute(); 

    /* count */ 
    $count = $stmt->num_rows; 

    /* close statement */ 
    $stmt->close(); 
} 

/* close connection */ 
$mysqli->close(); 

if($count===1){ 
    //do something 
} 
관련 문제