我知道调试PHP有很多,但我似乎无法弄清楚为什么这段代码不起作用:
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
// CONNECT TO MYSQL
$con = mysqli_connect("127.0.0.1","root","MySQLrootpass","cards");
if (mysqli_connect_errno()){
echo "<div style='text-align: center;'>";
echo "<h1>Could not connect to server, please try again later.</h1>";
echo "Failed to connect to MySQL: " . mysqli_connect_error();
echo "</div>";
}
$data = mysqli_query($con,"SELECT * FROM cards");
while($row = mysqli_fetch_array($data)){ ?>
<div id="card<?php echo $row["id"]; ?>" class="cardPost" style="background-image: url('Sprites/card.png');" onClick="sideData('card','<?php echo $row["id"]; ?>')">
<span class="cardTitle"><?php echo $row["name"]; ?></span>
<div class="elements">
<img class="elmPic" src="Sprites/elms/<?php echo $row["element"]; ?>Elm.png">
</div>
</div>
<?php}
// DISCONNECT FORM MYSQL
mysqli_close($con);
?>
我是整个PHP显示错误的新手,所以我不知道为什么没有显示。
在通过语法检查程序运行后,它说while循环结束时的}
是意外的,我不明白为什么,因为这段代码工作正常,直到我添加了id和onClick属性到<div>
。
现在,当我删除它时,它仍然无法正常工作。
另外,我知道这是循环,因为当我发表评论时,一切运作良好 我在页面上还有另一个就像这个(带有id和onClick)工作得很好。
还有一件事,当我在第二个while循环中删除分号(开始隐藏)时,一切都运行良好。
我知道这是一个非常具体的情况,但任何帮助都会非常感激。
答案 0 :(得分:2)
我是整个php显示错误的新手,所以我不知道为什么没有显示
ini_set
和error_reporting
是函数:与任何其他函数一样,它们在脚本运行时执行。如果你的脚本有一个解析错误,它将永远不会运行,所以你的函数将没有机会做任何事情。
您可以在php.ini文件中更改这些设置,这将允许它们在脚本执行之前生效(然后您将能够看到错误消息)。
display_errors = on
error_reporting = E_ALL
在通过语法检查程序运行之后,它说在while循环结束时}}出乎意料,我不明白为什么
<?php
和}
之间应该有空格。
答案 1 :(得分:0)
正如traq所说,问题是<?php
和}
之间的空间(第22行)。看看这个:
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
// CONNECT TO MYSQL
$con = mysqli_connect("127.0.0.1","root","","ads");
if (mysqli_connect_errno()){
echo "<div style='text-align: center;'>";
echo "<h1>Could not connect to server, please try again later.</h1>";
echo "Failed to connect to MySQL: " . mysqli_connect_error();
echo "</div>";
}
$data = mysqli_query($con,"SELECT * FROM cards");
while($row = mysqli_fetch_array($data)){ ?>
<div id="card<?php echo $row["id"]; ?>" class="cardPost" style="background-image: url('Sprites/card.png');" onClick="sideData('card','<?php echo $row["id"]; ?>')">
<span class="cardTitle"><?php echo $row["name"]; ?></span>
<div class="elements">
<img class="elmPic" src="Sprites/elms/<?php echo $row["element"]; ?>Elm.png">
</div>
</div>
<?php }
// DISCONNECT FORM MYSQL
mysqli_close($con);
?>
答案 2 :(得分:-1)
尝试
ini_set('display_errors','1'); // value in quotes
对于特殊的人。访问此链接。 http://php.net/manual/ru/function.ini-set.php
如果不起作用那么。
<?php
phpinfo();
/*
find where is php.ini
then tell admin to change if you dont have permissions.
*/
?>
您也可以尝试error_get_last