我已经在stackoverflow上复制了另一个主题的代码,但它在这里不起作用..在互联网上搜索但是找不到任何关于这个简单的事情,查询无效。
我想更新一张桌子。
形式:
<form method="post" action="klas_bewerken.php">
<label>Old</label> <input name="old" type="text" id="textfield" />
<label>New</label> <input name="new" type="text" id="textfield" />
<input type="submit" value="Change now" />
</form>
Klas_bewerken.php
<?php
$mysqli = new mysqli("localhost", "root", "root", "sms");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$old = $_POST['old'];
$new = $_POST['new'];
echo "Old: $old";
echo "<br /> New: $new";
mysqli_query("UPDATE klas SET klas_id='$new' WHERE klas_id='$old'");
ECHO "<br /><br />Updated.";
mysql_close($con);
?>
代码对我来说很好..有没有人看到错误?该表未更新。
感谢
修改
所以,更多解释:表klas只有1列:klas_id。有一排:A3D。我想把它换成A3C,所以我用旧的'A3D'和新的'A3C'填写。
答案 0 :(得分:2)
你在这里混合了程序和OO风格。你不能混合那两个,代码应该看起来像这样(没有测试但应该工作)
<?php
$mysqli = new mysqli("localhost", "root", "root", "sms");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$old = $_POST['old'];
$new = $_POST['new'];
echo "Old: $old";
echo "<br /> New: $new";
$mysqli->query("UPDATE klas SET klas_id='$new' WHERE klas_id='$old'");
ECHO "<br /><br />Updated.";
$mysqli->close();
?>
如果你想要更广泛的使用,也一定要逃避这些角色
答案 1 :(得分:0)
在创建连接后尝试以下操作并获得POST变量:
$update = "UPDATE klas SET klas_id='".$new."' WHERE klas_id='".$old."'";
if ($run = $mysqli->query($update)) {
echo 'Success';
$run->free();
$mysqli->close();
} else {
echo 'Error Updating Content';
exit();
}
答案 2 :(得分:0)
POST
时,您的代码无法自行更新,并且您的sql正在通过POST变量进行更新。
首先检查是否提交了类似下面的内容。
并且你必须转义ur变量以防止sql注入。
当你关闭连接时,你也在mysql
,而必须是mysqli
<?php
$mysqli = new mysqli("localhost", "root", "root", "sms");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
if (isset($_POST['submit'])){
$old = mysqli_real_escape_string($_POST['old']);
$new = mysqli_real_escape_string($_POST['new']);
echo "Old: ". $old;
echo "<br /> New: " .$new;
$mysqli->query("UPDATE klas SET klas_id='".$new."' WHERE klas_id='".$old."'");
mysqli_close($mysqli); }
ECHO "<br /><br />Updated.";
?>
答案 3 :(得分:-2)
尝试以此身份运行您的查询
mysqli_query("UPDATE klas SET klas_id='".$new."' WHERE klas_id='".$old."'");
我认为将“$ old”更新为“$ new”但没有“$ old”值存在