如何解决PHP警告:odbc_connect:SQL错误:[unixODBC] [驱动程序管理器]无法打开lib在PHP中与Snowflake的连接无法正常工作,但与isql的连接却正常
我能够使用isql连接并查询到我的雪花服务器,但是当我尝试使用PHP odbc_connect进行连接时,出现以下错误。
PHP Warning: odbc_connect(): sql error: [unixODBC][Driver Manager]Can't open lib '/var/www/html/odbc_test/sNowflake/sNowflake_odbc/lib/libSNowflake.so' : file not found,sql state 01000 in sqlConnect in /var/www/html/test/sNowflake.PHP on line 29
在https://docs.snowflake.com/en/user-guide/odbc-linux.html此处提供雪花说明之前,我从未建立过odbc连接。
出现错误后,我尝试做的第一件事是在/ var / www / html / odbc_test / sNowflake / sNowflake_odbc / lib / libSNowflake。权限上设置权限,因此该设置不起作用,因此我将其设置为777,没用。
<?PHP
//values checked with https://docs.sNowflake.com/en/user-guide/odbc-parameters.html
$SNowFLAKE_HOST = 'sNowflakecomputing.com';
$SNowFLAKE_ACCOUNT = 'xxxx;
$SNowFLAKE_PORT = '443';
$SNowFLAKE_SCHEMA = 'xxxx';
$SNowFLAKE_WAREHOUSE = 'xxxx';
$SNowFLAKE_DATABASE = 'xxxx';
$SNowFLAKE_USER = 'xxxx';
$SNowFLAKE_PASSWORD = 'xxxx';
$dsn = "Driver=SNowflakeDSIIDriver;Server=" . $SNowFLAKE_HOST;
$dsn .= ";Account=" . $SNowFLAKE_ACCOUNT;
$dsn .= ";Port=" . $SNowFLAKE_PORT;
$dsn .= ";Schema=" . $SNowFLAKE_SCHEMA;
$dsn .= ";Warehouse=" . $SNowFLAKE_WAREHOUSE;
$dsn .= ";Database=" . $SNowFLAKE_DATABASE;
$conn_id = odbc_connect($dsn,$SNowFLAKE_USER,$SNowFLAKE_PASSWORD);
odbc_exec($conn_id,"USE WAREHOUSE " . $SNowFLAKE_WAREHOUSE);
$res = odbc_exec($conn_id,'SHOW TABLES IN SCHEMA ' . $SNowFLAKE_SCHEMA . ';');
if ($res) {
print "Tables in schema\n";
while($row = odbc_fetch_array($res)) {
print_r($row);
}
}
$res = odbc_exec($conn_id,'SELECT * FROM TEST;');
if ($res) {
print "Test table content\n";
while($row = odbc_fetch_array($res)) {
print_r($row);
}
}
解决方法
我也可以通过将snowlight_odbc中所有目录的权限更改为777来解决此问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。