我只是在代码中找不到任何错误。CCD_ 1方法带来的问题(134217728字节的允许内存大小耗尽)。
代码:
<?php
require "dbConnect.php";
$username = $_POST['username'];
if ($username != '') {
$sql = "SELECT * FROM users WHERE username='$username'";
$result = mysqli_query($con, $sql);
$check = mysqli_fetch_array($result);
$data = array();
if (isset($check)) {
echo "4";
while ($row = mysqli_fetch_array($result)){
echo "2";
array_push ($data, array('name'=>$row[1], 'username'=>$row[2], 'password'=>$row[3], 'email'=>$row[4]));
}
echo json_encode(array("response"=>$data));
mysqli_close($con);
} else {
echo "0";
}
} else {
echo "3";
}
?>
错误:
<br />
<b>Fatal error</b>: Allowed memory size of 134217728 bytes exhausted (tried to allocate 64 bytes) in <b>/home/u766232015/public_html/phpScripts/getUSerData.php</b> on line <b>14</b><br />
while()循环永远不会停止循环,内部没有任何更改。您需要将mysqli_fetch_array调用移动到循环条件,例如
while ($row = mysqli_fetch_array($result)) {
...
}
您的脚本使用了太多内存。如果您有一个循环失控,并且在每次循环时都要创建对象或添加到数组中,那么在PHP中经常会发生这种情况。
请参阅SO上的这篇帖子:php 中允许的33554432字节的内存大小已用尽(试图分配43148176字节)
检查您的while()
是否不是一个无限循环;)