【发布时间】:2014-02-12 18:44:59
【问题描述】:
我的网站有一个安全区域,我可以在其中添加/更新/删除数据库条目。我正在尝试将脚本从 mysql 更新到 mysqli。除“更新”部分外,一切正常。当我填写新信息并单击“更新”时,它给了我这个错误:
警告:mysqli_real_escape_string() 期望参数 1 为 mysqli, 给出的字符串 /home3/tarb89/public_html/aususrpg.net/charbase/updated.php 在第 19 行
我不确定这里出了什么问题;我是一个完全的新手,所以我很抱歉。
这是我的 update.php 代码:
<?php
// Create connection
$con=mysqli_connect("xxx","xxx","xxx","xxx");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$id = $_GET['id'];
$result = mysqli_query($con,"SELECT * FROM characters WHERE id = '$id'");
$my_array = array($c_z);
extract($my_array);
?>
<form id="FormName" action="../charbase/updated.php" method="post" name="FormName">
<table width="448" border="0" cellspacing="2" cellpadding="0">
<tr>
<td width="150" align="right"><label for="name">Name: </label></td>
<td><input name="name" maxlength="255" type="text" value="<?php echo stripslashes($name) ?>"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input name="" type="submit" value="Update">
<input name="id" type="hidden" value="<?php echo $id ?>">
</td>
</tr>
</table>
</form>
我对 update.php 页面的另一个问题是当它显示表格时,输入应该显示数据库中已经列出的信息;目前,它显示名称字段,但输入部分为空。它应该显示数据库中已经存在的名称数据(然后我可以用我想要更新的任何内容替换它。)
这里是updated.php代码:
<?php
// Create connection
$con=mysqli_connect("xxx","xxx","xxx","xxx");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$id = $_POST['id'];
$name = mysqli_real_escape_string(trim($_POST["name"]), $con);
$rsUpdate = mysqli_query($con,"UPDATE characters SET name='$name'
WHERE id='$id'");
if($rsUpdate) { echo "Successfully updated"; } else { die('Invalid query: '.mysql_error()); }
?>
<a href="index.php">Back to index</a>
任何帮助将不胜感激。这件事让我发疯了。
不同的问题:见上面的 update.php 代码。
当我点击一个名为“更新信息”的数据库条目旁边的链接时,我会更新.php?id=charactersid
目前,它显示一个空的输入表单。我可以输入信息并点击“更新”,它会正确更新。
但是,当我被带到 update.php 页面时,我希望它显示输入表单,但值应全部等于数据库中已有的值。
例如:
目前显示的内容:
名称:[空输入框]
我希望它显示的内容:
姓名:[数据库中列出的当前姓名]
所以输入的值应该是那个字符的信息;这样当我想更新时,我可以看到已列为该角色信息的内容,并更改/删除/添加我需要的任何其他内容。
这样更有意义吗?
【问题讨论】: