在PHP中左连接的SQL查询不起作用

时间:2014-01-20 08:44:22

标签: php mysql sql

我需要一些帮助。我在我的数据库中进行了一个SQL查询,它运行得很好。但是当我尝试将这个sam sql查询放入php时它不起作用。我无法弄明白错误在哪里。

    //connection variables
$host = "localhost";
$database = "kjnjkyeo3";
$user = "root";
$pass = "probajovo11";

//connection to the database
$connection = mysql_connect($host, $user, $pass, $database)
or die ('cannot connect to the database: ' . mysql_error());


$sql = "SELECT ps_orders.id_order, ps_order_detail.id_order, ps_order_detail.product_reference AS Itemno,  ps_order_detail.product_quantity AS Saleqty, ROUND(ps_order_detail.total_price_tax_incl, 2) AS Cost, DATE_FORMAT(ps_orders.date_add , \'%Y%m%dT%T\' ) AS Dateoftrans\n"
    . "FROM ps_orders\n"
    . "LEFT JOIN kjnjkyeo3.ps_order_detail ON ps_orders.id_order = ps_order_detail.id_order";

//loop to show all the tables and fields
$loop = mysql_query($sql)
or die ('cannot select tables');

我在我的sql查询中做了很多更改,但我总是得到msg什么不能选择表。 当我做一个简单的查询,如“从$ database中选择表格”时,它可以正常工作。

有人可以帮我解决这个问题。

向前推进。

这是一个较旧的项目,我进行了更改

//connection variables
$host = "localhost";
$database = "kjnjkyeo3";
$user = "root";
$pass = "probajovo11";

//connection to the database
$connection = mysql_connect($host, $user, $pass)
or die ('cannot connect to the database: ' . mysql_error());

//select the database
mysql_select_db($database)
or die ('cannot select database: ' . mysql_error());

$sql = "SELECT ps_orders.id_order, ps_order_detail.id_order, ps_order_detail.product_reference AS Itemno,  ps_order_detail.product_quantity AS Saleqty, ROUND(ps_order_detail.total_price_tax_incl, 2) AS Cost, DATE_FORMAT(ps_orders.date_add , \'%Y%m%dT%T\' ) AS Dateoftrans FROM ps_orders LEFT JOIN ps_order_detail ON ps_orders.id_order = ps_order_detail.id_order";

//loop to show all the tables and fields
$loop = mysql_query($sql)
or die ('cannot select tables');

但它仍然无效

4 个答案:

答案 0 :(得分:1)

$connection = mysql_connect($host, $user, $pass) or die ('cannot connect to the database: ' . mysql_error());
mysql_select_db($database);
$sql = "SELECT ps_orders.id_order, ps_order_detail.id_order,
 ps_order_detail.product_reference AS Itemno,  ps_order_detail.product_quantity AS Saleqty, ROUND(ps_order_detail.total_price_tax_incl, 2) AS Cost, DATE_FORMAT(ps_orders.date_add , \'%Y%m%dT%T\' ) AS Dateoftrans FROM ps_orders LEFT JOIN kjnjkyeo3.ps_order_detail ON ps_orders.id_order = ps_order_detail.id_order";

答案 1 :(得分:0)

mysql_connect不允许您像选择那样选择数据库。您必须使用mysql_select_db,有一天您还必须最终转移到mysqliPDO

$connection = mysql_connect($host, $user, $pass) or die ('cannot connect to the database: ' . mysql_error());
mysql_select_db($database);

答案 2 :(得分:0)

mysql_connect不接受$ database参数。 http://dk1.php.net/manual/en/function.mysql-connect.php,而是使用:

$connection = mysql_connect($host, $user, $pass)
mysql_select_db($database, $connection)

答案 3 :(得分:0)

使用mysql_select_db($database)告知查询运行的数据库。

如果您从多个数据库中进行选择,则可以使用这种方式来引用字段

`database_name`.`table_name`.`field_name`

或只是

`database_name`.`table_name` 

表示FROM中的表格。

不推荐使用

mysql_ *函数,如果你开始一个新项目使用mysqli或pdo

相关问题