Как можно переписать следующий простой SELECT
сценарий mySQL PHP в PDO с подготовленными инструкциями, которые требуют перезаписи входного запроса POST, используя PDO.
<?php
// Create connection
$con=mysqli_connect("localhost","username","password","dbname");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$FieldInput = $_POST['FieldInput'];
$return = ['error' => false];
$sql = "SELECT Field1, Field2
from Table1 WHERE (Field3 = '$FieldInput')";
$result = mysqli_query($con, $sql);
if($result && $result->num_rows > 0){
$return['error'] = true;
}
mysqli_close($con);
echo json_encode($return);
?>
Вывод в PDO должен следовать тому же принципупоказывая
{"error":true}
, если записи найдены, и
{"error":false}
, если записи не найдены.
Это то, что я пробовал до сих пор:
Я считаю, что синтаксис для предложения WHERE является неправильным, поскольку входные данные из POST никогда не попадают в запрос
<?php
$mysqli = new mysqli("server", "username", "password", "database_name");
// TODO - Check that connection was successful.
$unsafe_variable = $_POST["user-input"];
$stmt = $mysqli->prepare("SELECT Field1, Field2 from Table1 WHERE ( Field3 = ? ) );
// TODO check that $stmt creation succeeded
// "s" means the database expects a string
$stmt->bind_param("s", $unsafe_variable);
$stmt->execute();
$stmt->close();
$mysqli->close();
?>