查询在 mysql 工作台中有效,但在 php 中无效,不知道为啥

Posted

技术标签:

【中文标题】查询在 mysql 工作台中有效,但在 php 中无效,不知道为啥【英文标题】:query works in mysql workbench but not php and not sure why查询在 mysql 工作台中有效,但在 php 中无效,不知道为什么 【发布时间】:2016-09-04 20:52:44 【问题描述】:

$db 可以正常工作,这不是问题。谁能指出我正确的方向?

我尝试回显查询,但没有引发错误。该文件是 UTF8,所以我进行了更改。我注释掉了 if 语句,因为它阻止了错误的触发。一旦完成,我现在得到的结果错误是“调用 C:\wamp\www\goals...但我不明白那是什么。我已经在 mysql 控制台中运行了这个精确的查询,它工作正常。

下面是代码:

$query3 = "LOAD DATA INFILE 'C:/Users/Jim/Downloads/ActualSales.csv'
    INTO TABLE dailyActual
    CHARACTER SET UTF8
    IGNORE 1 LINES 
    (`year`,`month`,`division`,`account_nbr`,`Cust_Name`,`lastrep`,`Cust_Type`,`Ad_Type`,`amount`)";
    //echo $query3; 
    //if ($stmt3 = $db->prepare($query3)) 
    $stmt3 = $db->prepare($query3);    
    $stmt3->execute();
    $stmt3->close();
    //

任何帮助将不胜感激。 吉姆

【问题讨论】:

检查错误。我认为\r\n 可能会导致问题,因为这将被解释(因为你在双引号中)。 一些错误检查怎么样:php.net/manual/en/pdo.error-handling.php 是的,错误检查“无法获取 mysqli_stmt”并没有为我提供太多洞察力。引号中的 \r\n 的替代方法是什么? @Dagon 为什么要链接到 PDO? @YourCommonSense 愚蠢 ;-) 【参考方案1】:

您不能使用准备好的语句运行某些查询。

此外,在没有任何要绑定的变量的情况下运行 prepare() 几乎没有意义。

因此,只需更改 query() 调用的准备/执行。

要管理您可能遇到的任何其他问题,请设置正确的错误报告,方法是在 mysqli connect 之前添加以下行:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

【讨论】:

非常感谢。我对此有点陌生,感谢新手的耐心和完整的句子。现在工作得很好。

以上是关于查询在 mysql 工作台中有效,但在 php 中无效,不知道为啥的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL 中有效但在 PHP 中无效的查询

Mysql 查询在 Codeigniter 中返回空结果,但在本机 PHP 中工作正常

查询在 Access 中有效,但在 MySQL 中无效

使用变量的查询在 PHPMyAdmin 中有效,但在 PHP 脚本中无效

远程 mysql 连接在工作台中有效,但在 python 中无效

Python MySQLdb 转义字符:查询在 MySQL 中有效,但在 python MySQLdb 中无效