我正在创建要填写的表单并将其发送到我的数据库。
这是表格:

<form method="post" name="event" action="insertLivepro.php">
                    <ul>
                    <li> Khutbah/Lecture Title <input name="KhutbahLive" type="text" ><br></li>
                    <li>Date <input name="DateLive" type="date"> <br></li>
                    <li>Time <input name="TimeLive" type="time"> <br></li>
                    <li>Khutbah/Lecture By <input name="KhatibLive" type="text"><br></li>
                    </ul>
                    <input type="submit" name="submitAct" value="Submit">
                    <input type="reset" name="btnReset" value="Reset">
                </form>


这是insertLivepro.php:

<?php

$con=mysqli_connect("localhost","root","1234","fyp");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$sql="INSERT INTO livepro (KhutbahLive, DateLive, TimeLive, KhatibLive)
VALUES('$_POST[KhutbahLive]','$_POST[DateLive]','$_POST[TimeLive]','$_POST[KhatibLive]')";

if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }

echo '<script> alert ("done!") </script>';
include_once("admin.php");

mysqli_close($con);
?>


这是我的数据库:



所以我在填写表格并提交时遇到了这个错误:
错误:您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以在's Day','2014-06-13','15:30','Ustaz附近使用正确的语法。在第2行上不要')'

谢谢

最佳答案

问题是您正在通过文本框插入apostrophe。您的问题可以通过两种方式解决。

1:尝试对每个撇号使用两个撇号。

2:在查询中使用mysql_real_escape_string。像这样

$ sql =“ INSERT INTO livepro(KhutbahLive,DateLive,TimeLive,KhatibLive)
VALUES('mysql_real_escape_string($ _ POST [KhutbahLive])','mysql_real_escape_string($ _ POST [DateLive])','mysql_real_escape_string($ _ POST [TimeLive])','mysql_real_escape_string($ _ POST [KhatibLive])')';“;

关于php - mysql中的错误(与您的mysql对应),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23932471/

10-12 17:53