【问题标题】:Unable to save data in vfp dbf thourgh php无法在 vfp dbf thourgh php 中保存数据
【发布时间】:2012-08-09 10:12:39
【问题描述】:

我做错了什么,我的代码在 php 中,我想将数据保存到 dbf。

我已经在 vfp 中测试了这段代码,它正在工作

vfp 代码

hh='INSERT INTO instadb.db(pic_nm,user_pic,hashtag,usernm) values("abc","dd","eee","fff")'
hh1=CREATEOBJECT("ADODB.Connection")
hh1.Open("Provider=VFPOLEDB.1;Data Source=d:\newweb\inst\;Exclusive=NO;BackGroundFetch=NO;NULL=NO;Collate=MACHINE")
hh1.Execute(hh)

此代码正在运行,

但在 php 中

现在我用 php 编写这段代码

<?php

$conn = new COM("ADODB.Connection") ;
$jj="Provider=VFPOLEDB.1;Data Source=d:\newweb\inst\;Exclusive=NO;BackGroundFetch=NO;NULL=NO;Collate=MACHINE";
$conn->Open("Provider=VFPOLEDB.1;Data Source=d:\newweb\inst\;Exclusive=NO;BackGroundFetch=NO;NULL=NO;Collate=MACHINE");
$dd="INSERT INTO instadb.db(pic_nm,user_pic,hashtag,usernm) values('abc','dd','eee','fff')";
$conn->Execute($dd);
$conn->Close();

?>

这不起作用,请告诉我是什么问题

谢谢

【问题讨论】:

    标签: php dbf visual-foxpro


    【解决方案1】:

    将连接字符串用单引号括起来:

    $jj='Provider=VFPOLEDB.1;Data Source=d:\newweb\inst\;Exclusive=NO;BackGroundFetch=NO;NULL=NO;Collate=MACHINE';
    

    虽然它是用双引号括起来的

    d:\newweb\inst\
    

    变成

    d:
    ewweb\inst\
    

    ...因为 PHP 将 \n 转换为新行。

    【讨论】:

    • 我已将此 d:\newweb\inst\ 更改为 d:\NEWWEB\inst\,现在可以使用了,谢谢
    • 是的,我想这也行。我个人更喜欢保持我所有路径名的大小写与它们在文件系统中的大小写相同,以实现 *nix 可移植性,但我认为对于像这样的 Windows 特定代码来说,这真的无关紧要。请注意,只需将引号样式从双引号更改为单引号就可以了,但是任何对您有用的东西:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    相关资源
    最近更新 更多