我无法将 php 与 ms-access db 连接

Posted

技术标签:

【中文标题】我无法将 php 与 ms-access db 连接【英文标题】:I can't connect php with ms-access db 【发布时间】:2019-08-10 03:00:42 【问题描述】:

我已经尝试了这个网站的一些教程和一些其他代码,但没有真正解决我的问题:

<?php
  $db = database;
  $con = ("DRIVER=Microsoft Access Driver (*.mdb); DBQ=$db");
  $conn = odbc_connect($con, "", "", "SQL_CUR_USE_ODBC");
  if (!file_exists($db))
  
    die("Banco de dados não encontrado.");
  
  else 
    echo "sas"; 
  
  $sql = odbc_exec($con,"select * from tb_produto where Valor = '434'");
?>

给我以下错误:

odbc_connect() 期望参数 4 为 int,字符串在 -- on 第 4 行

【问题讨论】:

你使用 ms-access intead mysql 的目的是什么? 您的数据库被命名为“数据库”?如果 Valor 是一个数字字段,请不要在 434 附近使用撇号。 欢迎来到 SO!请收下tour 并阅读How to Ask!似乎您不理解错误消息,wjat 表明您对编码很陌生。我会从 Java (android) 或 C# 之类的 * clean 语言开始挖掘你,因为你不能理解它们,而不了解发生了什么。 PHP 非常“肮脏”。无论您做什么,我都不会抱怨(除非您不知道 int 是什么),而且许多使用它的人在编码方面都很薄弱,导致您编写的代码很糟糕,例如 Ms Office 上的 Excel。错误的代码(但似乎有效)被复制并淹没了我们(-Select->.Selection)。 错误信息想告诉你,odbc_connect的第四个参数(参数)必须是一个int(eger),一个数字。您提供了一个字符串(双引号之间的文本),但 SQL_CUR_USE_ODBCis a constant, representing an integer-number . Afer you solved that you will find out that the code still doesn't work. First linedatabase'is a function (variables start with$`。第二行有不需要的括号,.... 【参考方案1】:

这是取自手册PHP Manual的示例

$Conn = odbc_connect("db_name","","",SQL_CUR_USE_ODBC);

$result=odbc_exec($Conn,"select * from usuaris;");

【讨论】:

其实我已经试过了。现在的错误是: SQL 错误:[Microsoft][ODBC Driver Manager] Nome da fonte de dados n�o encontrado e nenhum driver padr�o especificado【参考方案2】:

SQL_CUR_USE_ODBC 是一个预定义的常量,应该直接使用,而不是作为字符串传递。

$conn = odbc_connect($con,"","",SQL_CUR_USE_ODBC);

注意没有引号。

【讨论】:

以上是关于我无法将 php 与 ms-access db 连接的主要内容,如果未能解决你的问题,请参考以下文章

获取从 PHP ADO 连接返回到 MS-Access DB 的 JSON

PHP无法连接到数据库配置

无法连接到 mysql php/xampp

无法使用 PHP 连接到 SQL Server

使用 ODBC 连接到 MYSQL 在 MS-Access 中运行 SQL 时出错

无法连接到本地mysql