您好我试图使用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);
?>
上面的代码基本上显示了该单个属性的所有数据。任何帮助都会很棒。
答案 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>