[英]PHP syntax error in this query
谁能帮我弄清楚这段代码有什么问题? 在我添加第三个查询以使用数据库中的当前信息填充表单之前,它曾经可以工作。 现在它只返回一个白页。
<?php
if (isset($_GET['edit'])) {
echo "<form action=\"user.php\" method=\"post\">";
$userinfo = mysqli_query($con,"SELECT * FROM members WHERE members.id='".$_COOKIE[userid]."' AND members.username='".$_COOKIE[user]."'";
while($uir = mysqli_fetch_array($userinfo)) {
echo "
<label for=\"name\">Navn:</label>
<input type=\"text\" name=\"name\" placeholder=\"Your name\" value=\"".$uir['name']."\"required /><br />
<label for=\"mobil\">Mobil:</label>
<input type=\"tel\" name=\"mobil\" placeholder=\"Mobil tlf\" value=\"".$uir['mobil']."\" required /><br />
<label for=\"bilnr\">Bil #:</label>
<input type=\"tel\" name=\"bilnr\" placeholder=\"Bil Nr.\" value=\"".$uir['bilnr']."\" required /><br />
<label for=\"regnr\">Registrerings nummer:</label>
<input autocapitalize=\"characters\" type=\"text\" name=\"regnr\" placeholder=\"Reg.Nr.\" value=\"".$uir['regnr']."\" required /><br />";
}
echo "<input type=\"submit\" /></form>";
}
elseif (isset($_POST["bilnr"])) {
$sql="UPDATE members SET name='$_POST[name]', mobil='$_POST[mobil]', bilnr='$_POST[bilnr]', regnr='$_POST[regnr]' WHERE id='".$_COOKIE[userid]."' AND username='".$_COOKIE[user]."'";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "<p class=\"red\">Informasjonen er oppdatert!</p>";
mysqli_close($con); }
else {
echo "<a href=\"user.php?edit\">Oppdater bruker info</a>";
}
?>
您应该将数组键放在引号之间:
$_COOKIE['userid']
其次,不要在 SQL 代码中直接使用它们。 当您像这样编写查询时,更容易在代码中找到错误:
$name = $_POST['name'];
$mobil = $_POST['mobil'];
$bilnr = $_POST['bilnr'];
$regnr = $_POST['regnr'];
$sql="UPDATE members
SET name='$name', mobil='$mobil', bilnr='$bilnr',
regnr='$regnr' etc.
您忘记在第 6 行关闭第一个 mysqli_query 的括号。只需在该行的分号之前添加一个结束括号,php 将再次解析它。
IE:
$userinfo = mysqli_query($con,"SNIPPETY SNIP SNIP"."'";
到:
$userinfo = mysqli_query($con,"SNIPPETY SNIP SNIP"."'");
除非您想要 SQL 错误,否则不要将实际查询更改为 SNIPPETY SNIP SNIP。
请根据 John Conde 的评论调整您的代码以防止 sql 注入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.