Я пытаюсь использовать PHP для подключения к моей базе данных SQL с помощью
$conn = new COM ("ADODB.Connection")
Я пытаюсь запустить команду try / catch, чтобы убедиться, что в случае возникновения ошибки я могу ее перехватить.
Поэтому я подделываю сообщение об ошибке на странице, но вместо того, чтобы выдавать ошибку, сценарий просто останавливается в этот момент, а страница не продолжается.
Я ищу способ показать или сообщить мне о проблеме. Что-то вроде эквивалента бросания 500 страниц.
Вот как сейчас выглядит мой сценарий. Обратите внимание, я вставил дополнительную одиночную кавычку в оператор вставки, чтобы вызвать ошибку, чтобы я мог ее проверить.
echo
«после» не отображается на странице.
//create an instance of the ADO connection object
$conn = new COM ("ADODB.Connection")
or die("Cannot start ADO");
//define connection string, specify database driver
$connStr = "PROVIDER=SQLOLEDB;SERVER=".$myServer.";UID=".$myUser."; PWD=".$myPass.";DATABASE=".$myDB;
$conn->open($connStr); //Open the connection to the database
//declare the SQL statement that will query the database
$query = "INSERT INTO dbo.EventOnlineAppsIndividual (EventId, FirstName, LastName, Address, City, [State], Zip, Email) VALUES (". $_POST['id'] .", ''" . $_POST['FirstName'] ."','". $_POST['LastName']."', '". $_POST['Address']."','".$_POST['City']."', '". $_POST['State']."', '". $_POST['Zip']."', '".$_POST['email'] . "')" ;
echo $query . "<br before:<br>";
var_dump($query);
//execute the SQL statement and return records
$rs = $conn->execute($query);
echo "after";
Извините за не совсем понимание вопроса. Ниже будет ваш код в блоке try-catch. Я выдаю ошибку, если метод execute не работает. Будет выведена строка «Запрос не выполнен».
try{
//create an instance of the ADO connection object
$conn = new COM ("ADODB.Connection")
or die("Cannot start ADO");
//define connection string, specify database driver
$connStr = "PROVIDER=SQLOLEDB;SERVER=".$myServer.";UID=".$myUser."; PWD=".$myPass.";DATABASE=".$myDB;
$conn->open($connStr); //Open the connection to the database
//declare the SQL statement that will query the database
$query = "INSERT INTO dbo.EventOnlineAppsIndividual (EventId, FirstName, LastName, Address, City, [State], Zip, Email) VALUES (". $_POST['id'] .", ''" . $_POST['FirstName'] ."','". $_POST['LastName']."', '". $_POST['Address']."','".$_POST['City']."', '". $_POST['State']."', '". $_POST['Zip']."', '".$_POST['email'] . "')" ;
echo $query . "<br before:<br>";
var_dump($query);
//execute the SQL statement and return records
$rs = $conn->execute($query);
if(!$rs) {
throw new Exception('Query did not execute')
}
//This echo still wont be hit. unless you move it to the catch block.
echo "after";
}
catch (Exception $e) {
echo $e->getMessage();
exit();
}
Других решений пока нет …