2013-12-09 2 views
0
$id1 = $_POST['number']; //here i am getting a php variable called number 

$result = mysqli_query($con, "SELECT id,main FROM first WHERE ?how can i put that number right here?"); 

Я получаю переменную с другой страницы с помощью ajax, и я должен поместить ее в команду mysql. Как я могу это сделать?Как я могу поместить переменную php в команду mysql

+1

Использование подготовленных операторов! Используйте подготовленные заявления! Используйте подготовленные заявления! Используйте подготовленные заявления! Прочтите руководство для примера. Это примерно так же важно, как и при работе с MySQL на PHP, поэтому он должен быть охвачен любым случайным учебником. – deceze

+0

[Начать с 'mysqli :: prepare()' docs] (http://php.net/manual/en/mysqli.prepare.php) –

+0

, который является downvoting? ответы правильные ... – Loko

ответ

0

вариант 1.Good пойти на Подготовленные заявления

Вариант 2. "SELECT ID, главный FROM первый WHERE ID = $ идентификатор"

Если строка определяется в двойных кавычках, переменные обрабатываются в Это.

+0

Downvoter, позаботьтесь, чтобы объяснить? –

+0

_ «Хорошо идти на подготовленные заявления» _ крайне бесполезно и довольно бессмысленно.Возможно, вы можете сказать, что такое подготовленное заявление, где можно найти информацию об этом или как его закодировать. –

+0

downvoters безумны, что вы не делаете этого по-своему. +1 – Loko

0
$result = mysqli_query($con, "SELECT id,main FROM first WHERE your_db_field = $id1"); 

ИЛИ

$result = mysqli_query($con, "SELECT id,main FROM first WHERE your_db_field = " . $id1 . "); 

должно работать нормально.

Однако вы должны рассмотреть возможность использования хранимых процедур, чтобы избежать каких-либо уязвимостей безопасности ...

+0

Не рекомендуется применять методы, склонные к SQL-инъекции. – deceze

1

Вот пример с использованием подготовленных операторов:

/* Create a new mysqli object with database connection parameters */ 
    $mysqli = new mysql('localhost', 'username', 'password', 'db'); 

    if(mysqli_connect_errno()) { 
     echo "Connection Failed: " . mysqli_connect_errno(); 
     exit(); 
    } 

    /* Create a prepared statement */ 
    if($stmt = $mysqli -> prepare("SELECT priv FROM testUsers WHERE username=? 
    AND password=?")) { 

     /* Bind parameters 
     s - string, b - blob, i - int, etc */ 
     $stmt -> bind_param("ss", $user, $pass); 

     /* Execute it */ 
     $stmt -> execute(); 

     /* Bind results */ 
     $stmt -> bind_result($result); 

     /* Fetch the value */ 
     $stmt -> fetch(); 

     echo $user . "'s level of priviledges is " . $result; 

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

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

Source

Я настоятельно рекомендую исследовать подготовленные заявления рано на.

+0

Это странно, защищая «mysqli», когда PDO является более надежным интерфейсом. – tadman

+1

@ tadman: ** Согласовано **. Но один шаг за раз. Я думаю, что узнав о существовании и преимуществах таких вещей, как хранимые процедуры и подготовленные заявления, изучает PDO на данный момент. 'mysqli' работает, и он не причинит ему вреда, если он правильно его использует. –

-1
//Get ur name from Post Request  
$number=$_POST['number']; 
$query="SLEECT * FROM TABLE_NAME WHERE colunm_name='$number"; (or) 
$query="SLEECT * FROM TABLE_NAME WHERE colunm_name='".$number."'"; 
$result=mysql_query($con,$query) 

//Using Prepared Statement 
$stmt = $dbh->prepare("SELECT * FROM TABLE_NAME where COLUMN_NAME= ?"); 
if ($stmt->execute(array($_GET['number']))) { 
while ($row = $stmt->fetch()) {<br /> 
    print_r($row);<br /> 
} 

}

+1

Давай, некоторые форматирование кода, пожалуйста. Нажмите кнопку '{}', и она сделает это за вас. – tadman

Смежные вопросы