【问题标题】:PHP mysqli_query won't executePHP mysqli_query 不会执行
【发布时间】:2015-11-10 20:46:00
【问题描述】:

我正在尝试编写我的第一个基本 PHP RESTful API - 我设法使用 MAMP 在我的本地机器上运行它。但是当我上传到托管服务器时,它不想工作。

下面的代码 - 我在其中添加了一些 ECHO,以确保一切正常。在$result=mysqli_query 之前,我们似乎都很好。

<?php

//header('Content-type:application/json');

    // Connect to db
    $con = mysqli_connect("HOSTNAME","USER","PASSWORD","DATABASE");

    echo "Database: ";
    // Check connection
    if ($con->connect_error) {
        die("Connection failed: " . $con->connect_error);
    } 
    echo "Connected successfully";
    echo "<br><br>";

    // Get value from url
    $bid = $_GET['bid'];
    echo "BID: ";
    echo $bid;
    echo "<br><br>";

    // Define Query
    $sql = "SELECT id, bandname, members, bio, songlist FROM bands WHERE id='$bid'";
    echo "SQL Query: ";
    echo $sql;
    echo "<br><br>";

    // Run Query
    $result = mysqli_query($con, $sql);
    echo "Result: ";
    print_r($result);
    echo "<br><br>";

    // Put Query result into array
    $result_array = mysqli_fetch_array($result, MYSQLI_ASSOC);
    echo "Result Array: ";
    print_r($result_array);
    echo "<br><br>";

    // Encode array as JSON and output
    echo "JSON: ";
    echo json_encode($result_array);

?>

我输入的网址是http://bandsly.com/api.php?bid=1,这是我在浏览器中得到的输出...

Database: Connected successfully

BID: 1

SQL Query: SELECT id, bandname, members, bio, songlist FROM bands WHERE id='1'

Result: 

Result Array: 

JSON: null

当我在数据库 (PHPmyadmin) 中手动运行查询 SELECT id, bandname, members, bio, songlist FROM bands WHERE id='1' 时,它工作正常,并且我得到了 1 行返回的正确值。

手动db查询结果:

(http://i.stack.imgur.com/d3ZPJ.png)

任何帮助将不胜感激!

*****编辑*****

好的,我想我找到了问题...我的“成功连接”没有正确写入,并且总是看起来不错。看起来修复后,我有数据库连接问题。

我要去查找数据库连接设置并尝试修复它。

感谢大家的帮助!

【问题讨论】:

  • 你可以使用mysql_fetch_assoc($result);
  • $con = mysqli_connect("HOSTNAME","USER","PASSWORD","DATABASE");一切都好吗?
  • 感谢@aldrin27 - 我会尽量保持精简。
  • 你能用这个来检查mysqli_query是否正在以if (mysqli_query($con, $sql) === TRUE) {执行查询

标签: php mysql


【解决方案1】:

您的代码在我的本地系统http://www.awesomescreenshot.com/image/494275/c6c255cd6924d07196076b32489489de 上似乎没问题。应该有连接问题。所以你可以做一些尝试检查连接

查看详情

 // Connect to db
    $con = mysqli_connect("HOSTNAME","USER","PASSWORD","DATABASE");

然后你可以尝试 ping 数据库

/* check connection */
if ($con->connect_errno) {
    printf("Connect failed: %s\n", $con->connect_error);
    exit();
}

/* check if server is alive */
if ($con->ping()) {
    printf ("Our connection is ok!\n");
} else {
    printf ("Error: %s\n", $con->error);
}

【讨论】:

    【解决方案2】:

    您的所有代码都是正确的,我已经在本地测试过,只需更改您的 HOSTNAME 像“localhost”,USER 像“root”,PASSWORD 像“你的密码”,DATABASE 像“YOUR DATABASE NAME”。

    $con = mysqli_connect("HOSTNAME","USER","PASSWORD","DATABASE");
    

    请访问http://php.net/manual/en/function.mysqli-connect.php

    【讨论】:

      猜你喜欢
      • 2016-05-19
      • 2018-09-28
      • 1970-01-01
      • 2011-07-19
      • 2023-03-23
      • 2018-05-04
      • 2017-05-06
      • 1970-01-01
      • 2015-12-01
      相关资源
      最近更新 更多