亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 PHP 從 MySQL 查詢中沒有返回行,而手動運行查詢返回行

使用 PHP 從 MySQL 查詢中沒有返回行,而手動運行查詢返回行

PHP
慕娘9325324 2021-11-05 10:52:39
我正在使用 jquery ajax 調用返回 JSON 的 PHP 頁面簡單 API。這是代碼<?php $response['is_error'] = 'no';$user = $_POST['user'];$date = $_POST['date'];$sql = "select * from locations where user_id='$user' and DATE(timestamp) = '$date'";$locations = $conn->query($sql) or $response['is_error'] = 'yes';$response['num_rows'] = $locations->num_rows;$locations = $locations->fetch_assoc(); $response['locations'] = $locations;$response['date'] = $date;if($response['is_error'] == 'yes'){    $response['status'] = "failed";    $response['error'] = $conn->error;}else{    $response['status'] = "ok";}$response['sql']=$sql;echo json_encode($response);執行此腳本時返回以下 JSON{"is_error":"no","num_rows":0,"locations":null,"date":"2019-07-30","status":"ok","sql":"select * from locations where user_id='0123456789' and DATE(timestamp) = '2019-07-30'"} 以下是解析后的版本,方便觀看date: "2019-07-30"is_error: "no"locations: nullnum_rows: 0sql: "select * from locations where user_id='0123456789' and DATE(timestamp) = '2019-07-30'"status: "ok"但是,如果我復制粘貼在 PHPMyAdmin 頁面 SQL 中以 JSON 回顯的 SQL,它會返回一行,這確實是有意為之,奇怪的是,在腳本中使用 PHP 執行相同的查詢時,它不返回任何內容。這是 PHPMyAdmin 查詢輸出的附加屏幕截圖print_r($conn)在輸出之后運行回聲mysqli Object(    [affected_rows] => 1    [client_info] => 5.6.30    [client_version] => 50630    [connect_errno] => 0    [connect_error] =>     [errno] => 0    [error] =>     [error_list] => Array        (        )    [field_count] => 1    [host_info] => Localhost via UNIX socket    [info] =>     [insert_id] => 0    [server_info] => 5.6.44-cll-lve    [server_version] => 50644    [stat] => Uptime: 94095  Threads: 23  Questions: 77085244  Slow queries: 625  Opens: 814448  Flush tables: 1  Open tables: 5000  Queries per second avg: 819.227    [sqlstate] => 00000    [protocol_version] => 10    [thread_id] => 1035427    [warning_count] => 0)
查看完整描述

2 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

我認為以 0 開頭的 user_id 造成了問題。您能否更改 user_id 列的數據類型并將其設為 varchar,然后嘗試或從查詢中刪除 0 以及表行,然后進行檢查。它應該工作。


查看完整回答
反對 回復 2021-11-05
?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

if (isset($_POST["adds"])) {

    $servername = "localhost";

    $username = "root";

    $password = "root";

    $db = "loc";

    $conn = new mysqli($servername, $username, $password, $db);

    if ($conn->connect_error) {

        die("Connection failed: " . $conn->connect_error);

    }

    $response['is_error'] = 'no';

    $user = $_POST['user'];

    $date = $_POST['date'];

    $sql = "select * from location where user_id='$user' and DATE(timestamp) = '$date'";

    $locations = $conn->query($sql) or $response['is_error'] = 'yes';

    $response['num_rows'] = $locations->num_rows;


    $locations = $locations->fetch_assoc();

    $response['locations'] = $locations;

    $response['date'] = $date;

    if ($response['is_error'] == 'yes') {

        $response['status'] = "failed";

        $response['error'] = $conn->error;

    } else {

        $response['status'] = "ok";

    }

    $response['sql'] = $sql;

    echo json_encode($response);

}

`<html>

<head>

</head>

<body>

    <form method="post">

        <input type="text" name="user"><br>

        <input type="text" name="date"> <br>

        <input type="submit" name="adds">

    </form>

</body>

</html>


查看完整回答
反對 回復 2021-11-05
  • 2 回答
  • 0 關注
  • 134 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號