Я изучаю возможность ввода данных в свою базу данных с помощью подготовленных инструкций php mysqli. Я использую этот код для ввода данных в базу данных.Отображение данных в HTML-форме
$FirstName=ucwords($_POST['fname']);
$LastName=ucwords($_POST['lname'], "-'");
$Customer=$LastName." ".$FirstName;
$conn = new mysqli($host,$user,$password,$db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$stmt = $conn->prepare("INSERT INTO customers (FirstName, LastName, Customer) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $FirstName, $LastName, $Customer);
$stmt->execute();
$conn->close();
Это работает очень хорошо. Особенно с переносимыми именами или именами с апостофом, такими как Пит О'Брайан.
Теперь, пытаясь вернуть данные из базы данных, я использую следующий код.
$conn = new mysqli($host,$user,$password,$db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$stmt = $conn -> prepare("SELECT Customer, Instrument1 FROM tblinvoice WHERE InvID = ?");
$stmt->bind_param("i", $tempid);
$stmt->execute();
$stmt -> bind_result($cust, $inst);
$stmt -> fetch();
$cust = mysqli_real_escape_string($conn, $cust);
$stmt -> close();
$conn -> close();
НО ВЫЧИСЛЕННЫЙ ВЫВОД O \ для фамилии O'Brian. Я удаляю mysqli_real_escape_string ($ conn, $ cust) и просто использую связанное значение $ cust. Я просто получаю O вместо O'Brian.
Может ли кто-нибудь сказать мне, что я не делаю, или что я здесь делаю неправильно?
Использовать 'mysql_real_escape_string' на ** INSERT ** не на ** SELECT ** m, если вы так, вам не нужно ничего выводить на выходе –