-2

嗨,我在 php 文件中有一个查询,用于从 mysql 数据库中过滤文件中的数据

$_SESSION['sc_session'][$this->Ini->sc_page]['grid_deposit']['where_orig'] = " where Reg_no = \"69\"";  

在这一行中,如果 Reg_no = \"69\"" ,如果我将 69 更改为任何值,数据正在被修改,但如果我使用数组而不是 69,那么它不会像这样工作

   $_SESSION['sc_session'][$this->Ini->sc_page]['grid_deposit']['where_orig'] = " where Reg_no = " . $fc . "";  

但如果我使用 $fc = 69; 回声 $fc;

然后它的工作但不在那条线上请告诉我如何编码这个我得到的错误是

Error 
Error while accessing the database:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
select count(*) from deposit where Reg_no = 
4

3 回答 3

1

从您的 Reg_no =\"69\""

和你的 Reg_no =".$fc."";

你没有错过 $fc 的 ""

   $_SESSION['sc_session'][$this->Ini->sc_page]['grid_deposit']['where_orig'] = " where Reg_no = \"" . $fc . "\""; 

以匹配您的 69 示例。

于 2013-07-16T13:58:46.603 回答
1

在您最初的问题中,您说明了此错误文本

Error 
Error while accessing the database:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
select count(*) from deposit where Reg_no = 

如果 $fc 是一个数组,您将在查询中看到这一点。如果我没记错的话应该是这样的……

Error 
Error while accessing the database:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
select count(*) from deposit where Reg_no = Array

因为它不是我假设变量 $fc 是空的。您是否检查了变量或更好地创建查询并将其记录在某处以检查查询,因为它被发送到 sql 服务器。

如前所述,如果它是一个数组,PHP 会在错误地使用它时将其转换为您应该在查询中找到的文本“Array”。

于 2013-07-16T14:34:35.330 回答
0

我猜你试着做类似的事情

"其中 Reg_no IN (".implode(",", $fc).")";

于 2013-07-16T13:59:20.940 回答