<?php
try {
$conn = new PDO('mysql:host='.$host.';dbname='.$dbname, $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$data = $conn->query('SELECT id FROM products');
foreach($data as $row) {
$r[] = json_encode($row);
}
} catch(PDOException $e) { echo 'ERROR: ' . $e->getMessage();}
?>
<script type="text/javascript">
var jArray = <?php echo json_encode($r); ?>;
function showme(j) {
for(var i=0; i < j.length; i++){ document.write(j[i]); }
};
showme(jArray);
</script>
结果...
{"id":"172","0":"172"}{"id":"173","0":"173"}{"id":"174","0":"174"}...
注意额外的,"0":"172"
我相信我在如何在 PHP foreach 中传递数据或使用 PDO 时遇到了错误。老实说,我只想要最小的占用空间来从 MySQL 中获取数据,这样我就可以使用 JavaScript 和数据了。关于摆脱额外数据(和/或使用 PDO 的性能改进)的任何想法?请不要使用库,因为我必须(想要)使用纯 JavaScript 并限制服务器资源。