Я использую PHP real_escape_string для sanatize моих заявлений SQL, но я получаю фатальную ошибку на сценарий нагрузке: Catchable фатальной ошибки: Объект класса mysqli_result не может быть преобразован в строку в .... на линия: $query.=", EMGNAME='" . $db->real_escape_string($_POST["emgname"])
PHP real_escape_string в если заявление
$db = new mysqli("XXX","YYY","ZZZZ", "DDDD");
/* check connection */
if ($db->connect_error) {
trigger_error('Database connection failed: ' . $db->connect_error, E_USER_ERROR);
}
if ($_POST['toedit']=="profile")
{
$query="UPDATE STUDENTS SET ";
$query.="SEMAIL='" . $db->real_escape_string($_POST["email"]) . "'";
// $query.=", NATIONALITY='" . $db->real_escape_string($_POST["nationality"]). "'";
$query.=", ADDRESS1='" . $db->real_escape_string($_POST["address1"]). "'";
if (empty($_POST["ADDRESS2"]))
{
$query.=", ADDRESS2=NULL";
}
else
{
$query.=", ADDRESS2='" . $db->real_escape_string($_POST["address2"]) . "'";
}
$query.=", CITY='" . $db->real_escape_string($_POST["city"]) . "'";
if (empty($_POST["STATE"]))
{
$query.=", STATE=NULL";
}
else
{
$query.=", STATE='" . $db->real_escape_string($_POST["state"]) . "'";
}
if (empty($_POST["postal"]))
{
$query.=", POSTAL=NULL";
}
else
{
$query.=", POSTAL='" . $db->real_escape_string($_POST["postal"]) . "'";
}
$query.=", COUNTRY='" . $db->real_escape_string($_POST["country"]) . "'";
$query.=", SPHONE='" . $db->real_escape_string($_POST["sphone"]) . "'";
}//profile tab
else if ($_POST['toedit']=="emergency")
{
if (empty($_POST["emgname"]))
{
$query.="EMGNAME=NULL";
}
else
{
$query.=", EMGNAME='" . $db->real_escape_string($_POST["emgname"]) . "'";
}
if (empty($_POST["emgphone"]))
{
$query.=", EMGPHONE=NULL";
}
else
{
$query.=", EMGPHONE='" . $db->real_escape_string($_POST["emgphone"]) . "'";
}
у меня есть сценарий вызывается через AJAX, чтобы upadate только вкладка используется поэтому форма не проходит «emgname», но это, кажется, PHP хочет, чтобы попытаться выполнить real_escape_string даже если это в выражении if. В тот момент, когда вкладки вызывают один скрипт для обновления любого содержимого, которое нужно отредактировать, (else if ($ _POST ['toedit'])), но кажется, что php заставляет меня использовать другой скрипт для каждой вкладки?
Что такое * точное сообщение об ошибке? –
Если вы все равно используете mysqli, почему бы не использовать подготовленные инструкции? –
Ловкая фатальная ошибка: объект класса mysqli_result не может быть преобразован в строку в ... – BigGrecian