从mysql php中选择数据

时间:2017-08-19 18:40:54

标签: php mysql

我用它来从php中选择mysql中的数据

<?php
error_reporting(E_ALL);
$servername = "localhost";
$username = "******";
$password = "******";
$database = "*******";

// Create connection
$conn2 = new mysqli($servername, $username, $password, $database);
$stmt = $conn2->prepare('SELECT id, title, views from `blog_main`');

$stmt->execute();
var_dump($stmt);

$result = $stmt->get_result();
 while($r=$result->fetch_assoc())
{
        echo "id: " . $r["id"]. " - Name: " . $r["title"]. " " . $r["views"]. "<br>";
}

$conn->close();
?>

但是没有显示结果,但如果我在phpmyadmin接口上运行此查询,则返回行。 这段代码在localhost上工作得很好但是当我把它转移到godaddy的服务器时,我只是在准备好的语句中面对这个问题。 当我使用普通查询方法显示行时,只有预处理语句不起作用。

这是var dump的值:

object(mysqli_stmt)#2 (10) { ["affected_rows"]=> int(-1) ["insert_id"]=> int(0) ["num_rows"]=> int(0) ["param_count"]=> int(0) ["field_count"]=> int(3) ["errno"]=> int(0) ["error"]=> string(0) "" ["error_list"]=> array(0) { } ["sqlstate"]=> string(5) "00000" ["id"]=> int(1) }

我需要启用任何类型的扩展或可能存在什么问题吗?

2 个答案:

答案 0 :(得分:0)

这是我对你的问题的回答,

创建文件db.php

$dbInfo = array(
    'host'      => "localhost",
    'user'      => "******",
    'pass'      => "******",
    'dbname'    => "******"
);

创建dbcon.php

class database{
    protected $databaseLink;
    function __construct(){
        include "db.php";
        $this->database = $dbInfo['host'];
        $this->mysql_user = $dbInfo['user'];
        $this->mysql_pass = $dbInfo['pass'];
        $this->databaseName = $dbInfo['dbname'];
        $this->openConnection();
        return $this->get_link();
    }
    function openConnection(){
    $this->databaseLink = mysqli_connect($this->database, $this->mysql_user, $this->mysql_pass, $this->databaseName);
    }

    function get_link(){
    return $this->databaseLink;
    }
}

创建func.php

include "dbcon.php";

function selectData(){
        $db = new database();
        $selectQuery = "SELECT id, title, views FROM blog_main";
        $selectQuery = mysqli_query($db->get_link(), $selectQuery) or die(mysqli_error());
        while($r = mysqli_fetch_assoc($selectQuery)) {
            $rows[] = $r;
        }
        return $result = json_encode(($rows));
        mysqli_close($db->get_link());
     }

并且在例如index.php中,您可以获取SQL返回的数据

include "func.php";
$data = selectData();


$dataJson = json_decode($data, TRUE);

foreach ($dataJson as $key => $value) {
    echo "id: " . $value['id']. " - Name: " . $value['title']. " " . $value['views']. "<br>";
}
祝你好运

答案 1 :(得分:0)

似乎是禁用驱动程序问题。我启用了stmt_mysqli驱动程序并且它有效。