我使用
获取约束记录上的行数$table1="tab1";
$table2="tab2";
$query=sprintf("SELECT '%s'.* FROM '%s' JOIN '%s' ON ('%s'.id='%s'.id)",
$table1,
$table1,
$table2,
$table1,
$table2);
$query=$this->db->query($query);
return $query->num_rows();
我想出了以下错误,我正在使用最新的XAMPP与mysql版本5.1
错误号码:1064
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近'。* FROM'tab1'JOIN'tab2'ON ('tab1'.userid ='tab2'.userid)'第1行
SELECT'tab1'。* FROM'tab1'JOIN'tab2'ON ( 'tab1'.userid =' tab2'.userid)
文件名:A:\ CodeIgniter_2.1.0 \ system \ database \ DB_driver.php
行号:330
更新
$query=sprintf("SELECT `%s`.* FROM `%s` JOIN `%s` ON (`%s`.id=`%s`.id) LIMTI `%d`, `%d`",
$table1,
$table1,
$table2,
$table1,
$table2,
$num1,
$num2);
错误是
错误号码:1327
未声明的变量:5
SELECT
tab1
。* FROMtab1
加入tab2
ON (tab1
。userid =tab2
。userid)LIMIT5
,0
文件名:A:\ CodeIgniter_2.1.0 \ system \ database \ DB_driver.php
行号:330
答案 0 :(得分:0)
MySQL期望使用反引号引用表和列标识符,而不是单引号:
$query=sprintf("SELECT `%s`.* FROM `%s` JOIN `%s` ON (`%s`.id=`%s`.id)",
$table1,
$table1,
$table2,
$table1,
$table2);
答案 1 :(得分:0)
试试这段代码。
$table1="tab1";
$table2="tab2";
$query=sprintf("SELECT `%s`.* FROM `%s` JOIN `%s` ON (`%s`.id=`%s`.id)",
$table1,
$table1,
$table2,
$table1,
$table2);
$query=$this->db->query($query);
return $query->num_rows();
我认为您的第二个查询应该是这样的。
$query=sprintf("SELECT `%s`.* FROM `%s` JOIN `%s` ON (`%s`.id=`%s`.id) LIMTI %d, %d",
$table1,
$table1,
$table2,
$table1,
$table2,
$num1,
$num2);