我正在尝试使MYSQL表的所有行和列成为数组中的对象,以便可以通过javascript检索它们。
这是我到目前为止所拥有的:
<?PHP
include '../sql.php';
$c = mysql_connect('localhost', $user, $pw) or die('Unable to connect to MySQL');
$s = mysql_select_db('mydb') or die('Could not select database');
$q = mysql_query('SELECT * FROM mytable') or die(mysql_error());
$a = array();
$cl = mysql_num_fields($q);
for($i = 1; $i < $cl; $i++){
while($r = mysql_fetch_assoc($q)){
foreach($r as $k => $v){
$a[] = //something;
}
}
}
echo json_encode($a);
mysql_close($c);
?>
最后的对象应如下所示:
[
{id: 1, name: 'bob', status: 'sleeping'},
{id: 2, name: 'james', status: 'partying'},
{id: 3, name: 'eric', status: 'reading'}
]
以两行(我的意思是三行!)来做呢?
$pdo = new PDO("mysql:host=localhost;dbname=myDB;charset=utf8",'myUserName','myPassword');
$stmt = $pdo->query('SELECT * FROM mytable');
echo json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
PS。使用SELECT *
被认为是不好的做法。
对于PHP中的mysqli json响应
$link = mysqli_connect($servername, "$username", "$password", "$db_name", $port);
if (!$link)
{die("MySQL connect ERROR: " . mysqli_connect_error());}
$query = "SELECT * FROM mytable";
$result = mysqli_query($link,$query);
echo json_encode(mysqli_fetch_all($result,MYSQLI_ASSOC));
@mysql_close($link);