0

我在PHPMYADMIN中有多个记录,现在我正在尝试使用 PHP 代码获取这些记录,但是 每当我使用Localhost运行我的 php 脚本时,我总是得到Array () 1,但是我在表中有5 行.

请看下面的代码:

<?php
$objConnect = mysql_connect("localhost","root","");
$objDB = mysql_select_db("mydatabase");

$strMemberID = $_POST["sMemberID"];
$strSQL =  "SELECT * FROM order_details WHERE 
MemberID = '".mysql_real_escape_string($strMemberID)."' ORDER BY OrderID DESC ";

$objQuery = mysql_query($strSQL);


while($obResult = mysql_fetch_assoc($objQuery))
{
$arr = array();  
$arr["OrderID"] = $obResult["OrderID"];
$arr["ItemDetails"] = $obResult["ItemDetails"];
}
mysql_close($objConnect);   
echo print_r($arr); 
?>
4

2 回答 2

0

这不是您问题的直接答案,但是当您尝试使用 PDO 和准备好的语句时

$strMemberID = $_POST["sMemberID"];
$strSQL = 'SELECT * FROM order_details WHERE MemberID = ? ORDER BY OrderID DESC';
try {
    $db = new PDO('mysql:host=localhost;dbname=dbname;charset=UTF8', 'user', 'password');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    $query = $db->prepare($strSQL);
    $query->execute(array($strMemberID));
    $result = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
    echo 'Exeption: ' .$e->getMessage();
    $result = false;
}
$query = null;
$db = null;
var_dump($result);

你可能会喜欢。

于 2013-06-13T05:07:03.980 回答
0

在while循环中更改您的代码。

在循环外声明 $arr。在循环内声明数组将在初始化之前将其清除。这就是为什么你在每次运行中都会得到一行。

$arr = array(); 
while($obResult = mysql_fetch_assoc($objQuery))
{
$arr["OrderID"] = $obResult["OrderID"];
$arr["ItemDetails"] = $obResult["ItemDetails"];
}

Also, to view array elements use echo json_encode($arr) or var_dump($arr) or print_r($arr);

它肯定会为你工作

于 2013-06-13T05:03:19.143 回答