查看完整版本: 数据库相关问题

lily 2007-8-1 22:37

数据库相关问题

             <p><a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, '%CA%FD%BE%DD%BF%E2');" target="_self"><u><strong>数据库</strong></u></a>相关问题<BR>这节将讨论<a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, 'PHP');" target="_self"><u><strong>PHP</strong></u></a>和数据库之间最普通的问题。夸张地说,PHP几乎可以操作今天市面上有的所有的数据库。 <BR>1. 我听说PHP可以操作微软的SQL Server.应该怎样做? <BR>2. 我可以操作微软 Access 数据库吗? <BR>3. 我升级到了PHP 4, 现在我的<a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, 'mysql');" target="_self"><u><strong>mysql</strong></u></a>总是告诉我: "Warning: MySQL: Unable to save result set in ...". 这是怎么回事? <BR>4. 安装完共享mysql支持后, 一装入libphp4.so <a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, 'Apache');" target="_self"><u><strong>Apache</strong></u></a> 就 dumps core . 这个问题可以修复吗? <BR>5. 为什么我总得到这样的错误消息: : "Warning: 0 is not a MySQL result index in &lt;file&gt; on line &lt;x&gt;" or "Warning: Supplied argument is not a valid MySQL result resource in &lt;file&gt; on line &lt;x&gt;? <BR>1. 我听说PHP可以操作微软的SQL Server.应该怎样做?<BR>在Windows平台下, 你只要使用包里所含的ODBC驱动程序就可以了。 <BR>在Unix平台下, 你可以使用Sybase-CT driver 来操作 Microsoft SQL Servers。因为它们的协议(至少绝大部份的产品) 是完全兼容的. Sybase 有一个免费的 <a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, 'Linux');" target="_self"><u><strong>Linux</strong></u></a> systems 版本. 对另外一些的Unix系统来说,你可能需要联系 Sybase,以得到正确的库文件 . 也可以参照下面一些问题的答案。 <BR>2. 我可以操作 Microsoft Access数据库吗?<BR>是的。如果你是在 Windows 9x/Me, 或 NT/2000下运行,你已经有了所有必须的工具。 你可以使用ODBC 和 Microsoft's ODBC drivers for Microsoft Access databases。 <BR>如果你是在 Unix 下运行PHP,想要和Windows下的 MS Access 通讯,那么你需要Unix ODBC drivers. OpenLink Software 提供了一个 Unix-based ODBC drivers。 你可以下载一个试用(不过期)的 pilot 程序, 商业版本的价格定位在 $675 <BR>另外一种办法是使用带 Windows ODBC驱动的 SQL server来存诸数据,然后你可以用Microsoft Access (ODBC) and PHP (内置SQL Server驱动)来操作这个库。或者使用另一种文件格式, Access 和 PHP 都可以打开的, 比如操作系统文件或dBase 数据库等。关于这 OpenLink software的Tim Hayes 写了如下的文字: 在你可以使用PHP直接操作一种数据库里,使用另外的库作为中间件不是一个好的主意。 <BR>--例如用OpenLink's 驱动. 如果你确实需要中间件库, OpenLink 现在发布了 Virtuoso (虚拟数据库引擎), 可以运行在NT, Linux 其它的 unix平台.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;请参阅 website 免费下载.<BR><BR><BR>另一个成功的范例子是使用Windows下的Mysql(通过mysql ODBC),来同步化 Access 数据库. Steve Lawrence 写到: <BR><BR>按照Mysql的指引安装你的平台下的Mysql. 最新版本可以从 <A href="http://www.mysql.com/" target=_blank>http://www.mysql.com/</A> 得到(从你最近的镜像点!). 除了设置一个Mysql的数据库,不需要其它特别的配置, 设置用户帐号, 你应该把用户的主机域 设为“%”, 确认你的服务器名、数据库名等<BR>在Mysql的站点上下找Mysql ODBC驱动,最新的版本应该是 myodbc-2_50_19-win95.zip (NT)。在你的Windows下安装它. 你可以用工具包里的工具测试安装是否成功。 <BR>在你的 ODBC 管理器(控制面板里)里创建一个用户和系统的dsn。建一个DSN名, 输入你的主机名, 用户名(mysql), 口令,端口号, 等你在第一步里设置的数据。 <BR>完全安装Access, 这一步使你安装必须的工具驱动.. 至少 你需要管理连接的数据库表。 <BR>现在最有趣的事发生了! 建一个新的Access数据库。 在表里右键,选"link Tables"(链接表), 或者在 “文件” 菜单 下, 选“ Get External Data ”(获取外部数据) 然后“ Link Tables”(链接表). 当对话框打开时,选择文件类型: ODBC. 选择系统DSN,你在第三步创建的DSN名. 然后选要链接的表。按“确定”, 哦! 你现在可以在你的Mysql管理器上打开这个表, 可以增加/编辑/删除 数据! 你也可以建立查询, 输入/输出表到 MySQL, 建立表单及报表,等. <BR><BR>Tips and Tricks: <BR><BR>你可以建立Access表,把它输出到 MySQL, 也可以链接回来. 它会使创建表快些. <BR>当你在Access里创建表时, 必须设置主键。 同样,在Mysql里连到access时,也要有主键。 <BR>如果你在 MySQL时选了一张表, 你不得不在Access里重新链接.去&gt;add-ins&gt;链接表管理器 <BR><BR>3. 我升级到了PHP 4, 现在我的mysql总是告诉我: "Warning: MySQL: Unable to save result set in ...". 这是怎么回事? <BR>大部分这样的问题,是因为 PHP 4 编译选项 '--with-mysql'没有标明你的Mysql的路径。 这样PHP就会使用它内建的MySQL库. 如果你的系统运行在这样的平台下, PHP 3 作为 Apache 模块, 或者 auth-mysql, 它们使用另外版本的Mysql驱动,这样在两个不同版本的Mysql客户端驱动上就会存在冲突。 <BR>重新编译PHP 4, 增加Mysql的路径信息, '--with-mysql=/your/path/to/mysql' 通常都能解决这个问题。 <BR>4. 安装完共享mysql支持后, 一装入libphp4.so Apache 就 dumps core . 这个问题可以修复吗? <BR>如果你的Mysql是用 pthreads 连接的,将会发生这种情况。请使用 ldd。 如果已使用, grab the MySQL tarball and 重新编译, 或 从源代码rpm编译,移去相关文件里的打开 threaded client <a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, '%B4%FA%C2%EB');" target="_self"><u><strong>代码</strong></u></a>的开关 。如果以上的两种<a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, '%B7%BD%B7%A8');" target="_self"><u><strong>方法</strong></u></a>都不能修复这个错误,那么重新编译新的PHP库支持新的Mysql。 <BR>5. 为什么我总得到这样的错误消息: : "Warning: 0 is not a MySQL result index in on line " or "Warning: Supplied argument is not a valid MySQL result resource in on line ? <BR>你正在使用的结果集变量值是0。0意味着 因为某种原因你的查询失败了。在你取得结果集之前,你必须检查提交查询失败的原因。正确的写法应该如下: $result = mysql_query("SELECT * FROM tables_priv");<BR>if (!$result) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;echo mysql_error();<BR>&nbsp;&nbsp;&nbsp;&nbsp;exit;<BR>}<BR><BR>or $result = mysql_query("SELECT * FROM tables_priv")<BR>&nbsp;&nbsp;&nbsp;&nbsp;or die("Bad query: ".mysql_error());<BR></p>     <center><input type="image" onclick=copyToClipBoard() src="http://www.phpchina.com/images/phpcn_book_bu_tj.gif" border="0"></center>
页: [1]
查看完整版本: 数据库相关问题
PageRank