SQL错误 - 从两个表中获取数据

时间:2013-12-31 05:57:12

标签: php mysqli

疯了...... 任何人都可以告诉我这种语法有什么问题:

已编辑 -

这正确地返回标题:

$q = "SELECT t1.title FROM t1 WHERE t1.id=$id";

这正确地返回时间:

$q = "SELECT t2.time FROM t2 WHERE t2.id=$id";

我正在尝试使用以下语法查询这两个表:

$q = "SELECT t1.title, t2.time FROM t1, t2 WHERE t1.id=$id";

但是收到此错误消息:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近'$ q = \“SELECT t1.title,t2.time FROM t1,t2 WHERE t1.id = $ id \”'   在第1行

还有另一种方法吗?从我所读到的,这应该是正确的语法,但是,当我尝试查询两个表时,我似乎无法使查询工作。

我通过mysqli连接($ connection是我编写的一个函数,在查询单个表时工作正常 - 我只是因为需要更多代码而添加这个,我不需要任何帮助这部分内容,只有上面的错误信息):

$r = @mysqli_query ($connection, $q);
if (mysqli_num_rows($r) == 1)
{ 
// Valid id, show the form
// Get the event information
$row = mysqli_fetch_array ($r, MYSQLI_NUM);

… etc ...

4 个答案:

答案 0 :(得分:2)

如果您使用的是

 mysqli_query('$q ="SELECT t1.title, t2.time FROM t1, t2 WHERE t1.id=$id"');

请尝试使用

$q ="SELECT t1.title, t2.time FROM t1, t2 WHERE t1.id=$id";
mysqli_query($q);

$q ="SELECT t1.title, t2.time FROM t1, t2 WHERE t1.id= ".$id;
mysqli_query($q);

答案 1 :(得分:0)

<?php
  ... other code ...

  $q ="SELECT t1.title, t2.time FROM t1, t2 WHERE t1.id=$id";
  $result = mysqli_query($q);

  ... other code ...

?>

答案 2 :(得分:0)

尝试

$q ="SELECT t1.title, t2.time FROM t1, t2 WHERE t1.id=" . $id;

或使用围绕变量的大括号{}

$q ="SELECT t1.title, t2.time FROM t1, t2 WHERE t1.id={$id}";

答案 3 :(得分:-1)

使用连接来连接两个表t1和t2。您可以使用内部联接,左联接或右联接。像

$ q =“SELECT t1.title,t2.time FROM t1 LEFT JOIN t2 ON t1.id = t2.whhere t1.id = $ id”;