#php #mysql #mysqli
#php #mysql #mysqli
Вопрос:
у меня есть домашняя таблица, я хотел их обновить, у меня есть HTML, в другой форме php. Если вы нажмете кнопку, этот скрипт начнет выполняться. но я получаю предупреждение об ошибке: mysql_query () ожидает, что параметр 1 будет строкой, объект задан в
Тай, Алекс
<?php
require_once('../includes/connectie.php');
$id = mysqli_real_escape_string($db, $_POST['id']);
$Titel = mysqli_real_escape_string($db, $_POST['Titel']);
$Tekst = mysqli_real_escape_string($db, $_POST['Tekst']);
$sql = "UPDATE home SET ID=$id, Titel=$Titel, Tekst=$Tekst";
if (!mysqli_query($db, $sql)){
echo "error";
}
mysql_query($db, $sql);
?>
Комментарии:
1. вы смешиваете mysql и mysqli? я вижу оба в ваших заявлениях.
Ответ №1:
Удалите mysql_query($db, $sql);
строку в своем коде
<?php
require_once('../includes/connectie.php');
$id = mysqli_real_escape_string($db, $_POST['id']);
$Titel = mysqli_real_escape_string($db, $_POST['Titel']);
$Tekst = mysqli_real_escape_string($db, $_POST['Tekst']);
$sql = "UPDATE home SET ID=$id, Titel=$Titel, Tekst=$Tekst";
if (mysqli_query($db, $sql)){
//Completed
}
else
{
//failed
echo "error";
}
// mysql_query($db, $sql);
?>
Я также немного переформатировал
Ответ №2:
Вы путаете mysql_query
и mysqli_query
. Придерживайтесь mysqli
одного, поскольку он mysql
устарел примерно с 2012 года и скоро будет удален из основного кода PHP (вероятно, с выпуском PHP 6).
Кроме того, нет необходимости запускать запрос после оператора if .
if (!mysqli_query($db, $sql)){
Это не только проверяет, является ли результат true / false , это также запускает функцию mysqli_query, потому что только тогда она может определить, удалось ли это. Таким образом, вы можете отбросить mysql_query
то, что вы пытаетесь запустить (во второй раз), под этим оператором if, поскольку в этот момент он уже выполнен.