【问题标题】:PHP shows nothing, no errorPHP什么也没显示,没有错误
【发布时间】:2017-09-03 04:19:55
【问题描述】:

我正在尝试从 users 表中获取数据,但 PHP 显示空白页并且没有错误。我哪里错了?我是 PHP 新手。

<?php


$host ="localhost";
$database="xyz"; //I am sure that here is true
$username="xyz"; //I am sure that here is true
$password="xyz"; //I am sure that here is true

$sql = "select * from users;";

$con = mysqli_connect($host,$username,$password,$database);

$result = mysqli_query($con,$sql);

$response = array();



while($row=mysqli_fetch_array($result)){

  array_push($response,array("name" => $row[0],"email" => $row[1],"contact" => $row[2],"password" => $row[3]));

}

echo json_encode(array("server_response" =>$response));
mysqli_close($con);

?>

编辑

我在 while 循环中添加了var_dump($row);

<?php


error_reporting(-1);
ini_set('display_errors', 'On');


$host ="localhost";
$database="gurkanc1_sample";
$username="gurkanc1_sample";
$password="Sample123";

$sql = "select * from users;";

$con = mysqli_connect($host,$username,$password,$database);

$result = mysqli_query($con,$sql);

$response = array();



while($row=mysqli_fetch_array($result)){

  array_push($response,array("name" => $row[0],"email" => $row[1],"contact" => $row[2],"password" => $row[3]));
  var_dump($row);


}


echo json_encode(array("server_response" =>$response));
mysqli_close($con);

?>

现在显示了,

> array(8) { [0]=> string(3) "asd" ["name"]=> string(3) "asd" [1]=>
> string(3) "asd" ["email"]=> string(3) "asd" [2]=> string(2) "aa"
> ["contact"]=> string(2) "aa" [3]=> string(2) "aa" ["password"]=>
> string(2) "aa" } array(8) { [0]=> string(13) "Merhaba D�nya"
> ["name"]=> string(13) "Merhaba D�nya" [1]=> string(7) "Merhaba"
> ["email"]=> string(7) "Merhaba" [2]=> string(7) "Merhaba"
> ["contact"]=> string(7) "Merhaba" [3]=> string(7) "Merhaba"
> ["password"]=> string(7) "Merhaba" } array(8) { [0]=> string(0) ""
> ["name"]=> string(0) "" [1]=> string(0) "" ["email"]=> string(0) ""
> [2]=> string(0) "" ["contact"]=> string(0) "" [3]=> string(0) ""
> ["password"]=> string(0) "" } array(8) { [0]=> string(2) "ss"
> ["name"]=> string(2) "ss" [1]=> string(2) "ss" ["email"]=> string(2)
> "ss" [2]=> string(2) "ss" ["contact"]=> string(2) "ss" [3]=> string(1)
> "s" ["password"]=> string(1) "s" } array(8) { [0]=> string(4) "axac"
> ["name"]=> string(4) "axac" [1]=> string(3) "qdq" ["email"]=>
> string(3) "qdq" [2]=> string(4) "egeg" ["contact"]=> string(4) "egeg"
> [3]=> string(3) "wff" ["password"]=> string(3) "wff" } array(8) {
> [0]=> string(7) "merhaba" ["name"]=> string(7) "merhaba" [1]=>
> string(7) "nerbaba" ["email"]=> string(7) "nerbaba" [2]=> string(3)
> "cii" ["contact"]=> string(3) "cii" [3]=> string(4) "asdf"
> ["password"]=> string(4) "asdf" } array(8) { [0]=> string(1) "g"
> ["name"]=> string(1) "g" [1]=> string(1) "e" ["email"]=> string(1) "e"
> [2]=> string(2) "er" ["contact"]=> string(2) "er" [3]=> string(1) "r"
> ["password"]=> string(1) "r" } array(8) { [0]=> string(2) "sd"
> ["name"]=> string(2) "sd" [1]=> string(2) "sd" ["email"]=> string(2)
> "sd" [2]=> string(3) "dsd" ["contact"]=> string(3) "dsd" [3]=>
> string(0) "" ["password"]=> string(0) "" }

【问题讨论】:

  • 日志是怎么说的?
  • 开启 php 错误报告。错误报告(E_ALL); ini_set('display_errors', '1');
  • mysqli_error($con)的内容是什么?
  • array_push($response,array("name" => $row[0], 开头的行中的一个建议,使用列名而不是索引。如果表定义改变,索引也会改变。IOW 代替 $row[0],使用 $row['name']。
  • 好像您的 mysqli 连接不是 UTF8。

标签: php mysql arrays json mysqli


【解决方案1】:

我解决了关于土耳其字符的问题。我的数据库中有一些像 ü 这样的土耳其字符。然后截断我的表格并在我的数据库中再次添加一些英文字符。现在我的问题解决了。

【讨论】:

  • 我不会考虑截断您的表格作为答案。你为什么不做数据库连接utf8
【解决方案2】:

由于编码,我遇到了类似的问题。

This 为我解决了这个问题。

简而言之:确保编码正确。

在页面顶部添加它应该会有所帮助。

header("Content-Type: text/html; charset=ISO-8859-1")

【讨论】:

    【解决方案3】:

    以下是使用 Json 查看器插件格式化 json 时的外观,它似乎格式错误

    >array(8){
        [0]=>string(3)"asd"["name"]=>string(3)"asd"[1]=>>string(3)"asd"["email"]=>string(3)"asd"[2]=>string(2)"aa">["contact"]=>string(2)"aa"[3]=>string(2)"aa"["password"]=>>string(2)"aa"
    }array(8){
        [0]=>string(13)"Merhaba D�nya">["name"]=>string(13)"Merhaba D�nya"[1]=>string(7)"Merhaba">["email"]=>string(7)"Merhaba"[2]=>string(7)"Merhaba">["contact"]=>string(7)"Merhaba"[3]=>string(7)"Merhaba">["password"]=>string(7)"Merhaba"
    }array(8){
        [0]=>string(0)"">["name"]=>string(0)""[1]=>string(0)""["email"]=>string(0)"">[2]=>string(0)""["contact"]=>string(0)""[3]=>string(0)"">["password"]=>string(0)""
    }array(8){
        [0]=>string(2)"ss">["name"]=>string(2)"ss"[1]=>string(2)"ss"["email"]=>string(2)>"ss"[2]=>string(2)"ss"["contact"]=>string(2)"ss"[3]=>string(1)>"s"["password"]=>string(1)"s"
    }array(8){
        [0]=>string(4)"axac">["name"]=>string(4)"axac"[1]=>string(3)"qdq"["email"]=>>string(3)"qdq"[2]=>string(4)"egeg"["contact"]=>string(4)"egeg">[3]=>string(3)"wff"["password"]=>string(3)"wff"
    }array(8){
        >[0]=>string(7)"merhaba"["name"]=>string(7)"merhaba"[1]=>>string(7)"nerbaba"["email"]=>string(7)"nerbaba"[2]=>string(3)>"cii"["contact"]=>string(3)"cii"[3]=>string(4)"asdf">["password"]=>string(4)"asdf"
    }array(8){
        [0]=>string(1)"g">["name"]=>string(1)"g"[1]=>string(1)"e"["email"]=>string(1)"e">[2]=>string(2)"er"["contact"]=>string(2)"er"[3]=>string(1)"r">["password"]=>string(1)"r"
    }array(8){
        [0]=>string(2)"sd">["name"]=>string(2)"sd"[1]=>string(2)"sd"["email"]=>string(2)>"sd"[2]=>string(3)"dsd"["contact"]=>string(3)"dsd"[3]=>>string(0)""["password"]=>string(0)""
    }
    

    能否请您发布 var_dump($result) 或 print_r($result)。可能就像其他人建议的那样,桌子本身可能是空的。

    【讨论】:

      【解决方案4】:

      在脚本开头添加这个(作为代码,而不是在 php.ini 中):

      error_reporting(-1);
      ini_set('display_errors', 'On');
      

      然后,如果您仍然没有得到任何东西,请使用 phpmyadmin 检查 mysql 表。可能为空。

      尝试在 $result = mysqli_query($con,$sql); 之后添加这个

      echo mysqli_errno($con) . ": " . mysqli_error($con). "\n";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-13
        • 1970-01-01
        • 2013-01-03
        • 1970-01-01
        • 1970-01-01
        • 2012-03-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多