无法从表中选择,但我可以插入和创建?

时间:2016-01-27 11:43:08

标签: php mysql sql select mysqli

我对mysql有这个非常奇怪的问题。我可以插入,并创建表。但是我无法选择任何东西,当我尝试时它不显示任何错误,它只是回应我的行"错误:"

list1={"node1": "test1", "node2": "test2", ...}

但是当我使用这个

插入数据库时
getDiff("validTable");

function getDiff($regNr) {
    global $servername, $username, $password, $dbname;
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
    //todo
    $sql = "SELECT * FROM $regNr ORDER BY id LIMIT 1";
    $result = $conn->query($sql);

    if ($result === TRUE) {
        echo "done";
    } else {
        $error = $result->error;
        echo "Error: " . $error;
    }
    $conn->close();
}

它工作得很好,花花公子。我做错了什么?!这让我发疯了!

2 个答案:

答案 0 :(得分:0)

<强> mysqli_query

  

失败时返回FALSE。成功的SELECT,SHOW,DESCRIBE或   EXPLAIN查询mysqli_query()将返回一个mysqli_result对象。对于   其他成功的查询mysqli_query()将返回TRUE。

根据这个条件

np.multiply

您从查询中获得if ($conn->query($sql) === TRUE) { ,这不等于TRUE,并且您总是进入错误状态

要从查询中获取数据,请使用 fetch_array

mysqli_result

要获取错误表单查询,我们使用$row = $result->fetch_array(MYSQLI_NUM); printf ("%s (%s)\n", $row[0]); 而非$conn->error它需要您的连接变量而非结果变量

阅读http://php.net/manual/en/mysqli.error.php

答案 1 :(得分:0)

它仅显示“错误”,因为您的query成功并返回mysql object,该True不等于done,因此它不会回显 if ($conn->query($sql) === FALSE) { echo "Error: " . $conn->error; } else { echo "done"; }

见(http://php.net/manual/en/mysqli.query.php

  

失败时返回FALSE。成功的SELECT,SHOW,DESCRIBE或   EXPLAIN查询mysqli_query()将返回一个mysqli_result对象。对于   其他成功的查询mysqli_query()将返回TRUE。

使用以下代码更改代码以使其正常工作:

   if ($result = $conn->query($sql) === FALSE) {

基本上将if转为检查FALSE是否为FALSE。

很可能您也希望将结果存储在如下变量中:

$row = $result->fetch_array()

稍后使用$row = $result_fetch_assoc() $("#mytextbox").focus(function() { // this is when textarea is focused and button should show $("#whats-new-options").show(); }); 获取数据。