不能用php执行多次sql查询

时间:2017-07-21 10:53:44

标签: php

我试图在另一个下执行两个sql查询,一旦第一次执行完成,sql查询将堆叠在第二个上,我知道这是因为我在第一次执行后回显了值,这很好显示回声但它在第二个之后没有显示。我注释掉第一个查询,看看第二个查询的问题是否是语法,但它不是因为一旦第一个查询被注释掉,我就从第二个查询得到回声。

我尝试了这两种方法

$sql = mysqli_query($connection,"DELETE FROM PRODUCT WHERE ID='$delID';") or die(mysqli_error());

$sql .= mysqli_query($connection,"SELECT * FROM CHILD_IMG WHERE PROD_ID = '$delID';") or die(mysqli_error());

和这个方法

 $sql1 = mysqli_query($connection,"DELETE FROM PRODUCT WHERE ID='$delID';") or die(mysqli_error());

 $sql2 = mysqli_query($connection,"SELECT * FROM CHILD_IMG WHERE PROD_ID = '$delID';") or die(mysqli_error());

为了在同一个函数中查询两个sql结果,我需要做些什么吗?

更新问题是我试图从PRODUCT中删除一行,然后选择CHILD_IMG问题是CHILD_IMG有一个来自PRODUCT ID的外键,它正在查找已删除的ID。我只需要交换它们首先选择CHILD_IMG然后删除PRODUCT行

2 个答案:

答案 0 :(得分:1)

Answer by Jason

“mysqli_error()需要您将连接作为参数传递给数据库。”

or die(mysqli_error($connection); 

答案 1 :(得分:0)

在你的" php.ini" (配置文件服务器);

display_errors=On;

在您的代码中:

error_reporting( E_ALL );

测试此代码:

// List to add rows
$data = array();
// Return boolean
$sql1 = mysqli_query( $connection, "DELETE FROM PRODUCT WHERE ID='$delID';" );
//
if( ! $sql1 )
{
    die( "Error description: " . mysqli_error( $connection ) );
}
// Return resource
$sql2 = mysqli_query( $connection, "SELECT * FROM CHILD_IMG WHERE PROD_ID = '$delID';" );
//
if( ! $sql2 )
{
    die( "Error description: " . mysqli_error( $connection ) );
}
// if Results
if( mysqli_num_rows( $sql2 ) > 0 )
{
    // Get row
    while( $row = mysqli_fetch_row( $sql2 ) )
    {
        // Add list
        array_push( $data, $row );
    }
}
// print result
print_r( $data );