Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP连接到SQL未给出错误消息_Php_Sql_Ado - Fatal编程技术网

PHP连接到SQL未给出错误消息

PHP连接到SQL未给出错误消息,php,sql,ado,Php,Sql,Ado,我正在尝试使用PHP连接到我的SQL数据库 $conn = new COM ("ADODB.Connection") 我正在尝试运行try/catch,以确保在抛出错误时能够捕获错误。 因此,我在页面上假装出现错误,但脚本没有给我错误,而是在该点停止,页面不会继续 我正在寻找一种方法,以确保显示或通知我的问题。类似于导致500页的页面被抛出 这就是我的脚本现在的样子。注意,我在insert语句中添加了一个额外的单引号,只是为了引起一个错误,以便测试它。 “after”回声不会显示在页面上 //

我正在尝试使用PHP连接到我的SQL数据库

$conn = new COM ("ADODB.Connection")
我正在尝试运行try/catch,以确保在抛出错误时能够捕获错误。 因此,我在页面上假装出现错误,但脚本没有给我错误,而是在该点停止,页面不会继续

我正在寻找一种方法,以确保显示或通知我的问题。类似于导致500页的页面被抛出

这就是我的脚本现在的样子。注意,我在insert语句中添加了一个额外的单引号,只是为了引起一个错误,以便测试它。 “after”回声不会显示在页面上

//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();
}

echo$查询有效?第一个echo有效。。在执行之后,什么也没有发生。我遇到的问题是,我试图建立一个捕获系统,以防出现错误,但它没有捕获任何错误。我必须做什么才能显示错误?