Следующий код отобразит «12» на экране. Вот и все. Эти номера эха были добавлены для отладки.PHP Ошибка подтверждения инструкции
Он должен отображать «123» и вставлять в базу данных MySQL переменные в инструкции. По какой-то причине он заканчивается в предложении подготовки. Проверка ошибки fail() никогда не будет вызвана. На самом деле, ничего не вызвано после заявления о подготовке.
Я был повсюду и считаю, что я делаю все, что нужно должным образом, но это более вероятно, что-то я сделал.
Может ли кто-нибудь сказать мне, почему заявление о подготовке не работает таким образом?
$query = "insert into member(mail, user, val) values (?, ?, ?)";
$uuu = [email protected];
$hhh = Blah Williams;
$val = 0;
echo "1";
if($stmt = $this->conn)
{
echo "2";
$stmt->prepare($query) || $this->fail('MySQL prepare', $stmt->error);
echo "3";
$stmt->bind_param('ssi', $uuu, $hhh, $val)
|| $this->fail('MySQL bind_param', $stmt->error);
$stmt->execute();
if (!$stmt->execute())
{
if ($stmt->errno === 1062 /* ER_DUP_ENTRY */)
{
$this->fail('This username is already taken');
}
else
{
$this->fail('MySQL execute', $stmt->error);
}
}
}
else
{/*error check*/
$this->fail('MySQL insert prepare failed', $stmt->error);
return 0;
}
$stmt->close();
return true;
Убедитесь, что у вас всегда есть php.ini параметр включен, чтобы сообщить все ошибки на уровне, включая фатальные ошибки. Это может сэкономить много вашего времени. или использовать xdebug как расширение отладки. – varuog
К сожалению, у меня нет доступа к файлу php.ini на этом сервере. – Brru
Было бы удобно настроить wamp/lamp/mamp для разработки и тестирования локально, а не для любого стороннего сервера. хотя вы можете использовать http://php.net/ini_set для переопределения некоторых параметров php.ini во время выполнения – varuog