当我尝试将数据输入数据库时出现错误 详细信息:
insert.php 和代码是:
<div align ="center" dir="rtl">
<form dir="rtl" method="GET" action="update.php">
<div dir="rtl"class="row">
<div>
<label for="fname"> מספר מגמה       </label>
<input type="text" id="fname" readonly name="magma_no" value="<?=($row0['magma_no'] +1)?>">
</div>
</div>
<br>
<div dir="rtl"class="row">
<div>
<label for="fname"> שם מגמה       </label>
<input type="text" id="fname" name="mgma_name" placeholder="מספר כאן">
</div>
</div>
<br>
<div dir="rtl"class="row">
<div>
<label for="fname"> הסבר על מגמה     </label>
<input type="text" id="fname" name="mgma_details" placeholder="מספר כאן">
</div>
</div>
<br>
<div id="buttons" class="row">
<input style="font-family:David" type="submit" class="btn blue" value="הוספה למאגר" name="insert">
</div>
</form>
</div>
和update.php
<?php
include "../include/config.php";
if(isset($_GET['insert'])){
$query ="SELECT count(*) as 'counter' FROM magma where
magma_no='".$_GET['magma_no']."'";
$res = mysqli_query($con,$query);
$rowing = $res->fetch_array(MYSQLI_BOTH);
if( $rowing['counter'] == 0)
{
$insert="insert into magma (magma_no,mgma_name,mgma_details) VALUES ('".$_GET['magma_no']."','".$_GET['mgma_name']."','".$_GET['mgma_details']."')";
$query=mysqli_query($con,$insert);
if($query==1)
{
?>
<script>alert('הוספה בהצלחה')</script>
<meta content="0;../magma.php?succeed" http-equiv="refresh">
<?php
}else {
?>
<script>alert('ERROR CODE="<?=mysqli_errno($con)?>"')
</script>
<?php
echo "<h1 align='center'>".mysqli_error($con)."</h1>";
?>
<meta content="5;../magma.php?error" http-equiv="refresh">
<?php
}
}else
{
?>
<script>alert('ERROR CODE=403')</script>
<script>alert('ERROR MODE= מספר משתמש כבר קיים במערכת')</script>
<meta content="0;insert.php?error" http-equiv="refresh">
<?php
}
}
?>
当我单击提交时 我收到此错误
您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以在第1行的'1')'附近使用正确的语法
有人可以帮助我传递此错误吗? 我尝试了很多方法
更新1
var_dump($_GET['magma_no'],$_GET['mgma_name'],$_GET['mgma_details']);
string(3)“ 103”字符串(23)“הנדסתחשמלב'”字符串(1)“ 1”
答案 0 :(得分:0)
$_GET['mgma_name']
已经有一个单引号'
,您正在尝试在单引号中使用一个单引号。您需要将$_GET
变量用双引号引起来,如下所示:
$insert='INSERT INTO magma
(magma_no,mgma_name,mgma_details)
VALUES
("'. $_GET['magma_no'] . '","' . $_GET['mgma_name'] . '","' . $_GET['mgma_details'] . '")';
编辑:
根据Magnus的建议,您绝对应该使用准备好的语句。这是fantastic article,涵盖了基本的mysql用法,包括准备好的语句。