插入SQL语句错误

时间:2016-07-30 21:04:20

标签: sql mysqli sql-insert

您好我试图使用insert语句将数据插入数据库。所以基本上,用户将数据输入到表单中,然后一旦单击提交按钮,它就意味着获取表Property的property_id。 我的代码是这样的:

<?php
$id = intval($_GET['id']);
$query = mysql_query('SELECT * FROM review WHERE property_id="'.$id.'"');

if(isset($_POST['submit']))
{
$review = mysqli_real_escape_string($mysqli, $_POST['review']);


 if(mysqli_query($mysqli, "INSERT INTO review(review) VALUES ('$review')"))
  {
  ?>
        <script>alert('Successfully Updated ');</script>
        <?php
 }
 else
 {
  ?>
        <script>alert('Error...');</script>
        <?php
 }


}
?>

在页面顶部是我的其他代码,如下所示:

    <?php

include_once '../db/dbconnect.php';

$id = intval($_GET['id']);
$sql = 'SELECT* FROM property WHERE property_id="'.$id.'"';
$result = mysqli_query($mysqli, $sql);

$row=mysqli_fetch_array($result);

?>

上面的代码基本上显示了该单个属性的所有数据。任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

您的代码中存在多个错误:

$id = intval($_GET['id']);
$query = mysql_query('SELECT * FROM review WHERE property_id="'.$id.'"');

在PHP 5中不推荐使用mysql_*函数,在PHP 7中完全删除了。{不要使用它们! 此外,无法同时使用mysql_*mysqli_*个功能 还有一个错误:您正在执行SELECT查询,但您从未获取结果!
注意:您不需要连接$id。它使代码更难以阅读,有大量无用的单引号和双引号,并增加了拼写错误的可能性。 Just enclose the variables in a double-quoted string
您正在将$id强制转换为int值。如果字段property_id是整数,则无需在查询中的$id周围放置单引号。

更新了代码段

$id = intval($_GET['id']);
$query = mysqli_query($mysqli, "SELECT * FROM review WHERE property_id=$id") or die(mysqli_error($mysqli));
while($r = $query->fetch_assoc()) {
   // do something here with the current record $r
}

您的代码

if(mysqli_query($mysqli, "INSERT INTO review(review) VALUES ('$review')"))
[...]
<script>alert('Error...');</script>

开发时,您应该显示(或写入日志文件)每个失败查询的MySQL错误消息。它将使调试更容易:

<script>alert('Error: <?= mysqli_error($mysqli) ?>');</script>