【发布时间】:2018-09-04 14:27:19
【问题描述】:
我正在尝试从托管在 mamp 中的 mysql localhost 服务器访问下表。我尝试了多种方法,但它们似乎都提供了相同的结果(“0 个结果”)。我究竟做错了什么?我提供了PDO和mysqli方法,如果有人能指出错误,我将非常感谢!
CREATE TABLE `Orders` (
OrderID INT(11),
ParentOrderID INT(11),
AccountID INT(11),
RestaurantID INT(11),
EmployeeID INT(11),
-- CouponID INT(11),
BillingID INT(11),
ShippingID INT(11),
CreateDate TIMESTAMP,
OrderTime TIMESTAMP,
IsTimeOrder BIT,
IsDelivery BIT,
PRIMARY KEY (OrderID)
) ENGINE = INNODB;
我尝试使用的 mysqli 脚本
<?php
$servername = "localhost";
$port = "3306";
$schema = "es_test";
$username = "root";
$password = "root";
$conn = new mysqli($servername, $username, $password, $schema, $port);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
echo "Connected successyfully <br>";
}
$sql = "
SELECT
*
FROM
`es_test`.`Orders`
SORT BY
`OrderID` ASC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "OrderID: " . $row["OrderID"] . " - CreateDate: " . $row["CreateDate"] . "<br>";
}
} else {
echo "0 results";
}
$conn->close();
和 PDO 代码
<?php
class Order{
private $conn;
private $table_name = "orders";
//tableheaders
public function __construct($db){
$this->conn = $db;
}
function read(){
$query = "
SELECT
*
FROM
" . $this->table_name;
$stmt = $this->conn->prepare($query);
$stmt->execute();
return $stmt;
}
}
为什么总是返回 0 个结果?是我的 MySQL 服务器一直拒绝它吗?
【问题讨论】:
-
你为什么同时使用mysqli和pdo?你的问题不清楚
-
我从 PDO 开始,但它并没有达到我希望的结果。所以我尝试使用 mysqli,但它给出了相同的结果。我在想这是我一直错过的某种连续性错误。这就是我双向发布的原因;)
-
我看不出你在哪里使用那个类。
-
您是否启用了适当的 PHP 错误报告?
var_dump($result)显示什么? -
如果你检查
$conn->error会发生什么?