我正在尝试将'company_name', 'company_add', 'price'
更新为主键'id'
,但它会向我显示'something went wrong'
消息以及'undefined id'
错误。请帮帮我!
<?php
include('data_conn.php');
if(isset($_POST['sub']))
{
$comname=$_POST['cname'];
$comadd=$_POST['cadd'];
$pri=$_POST['price'];
$query ="UPDATE login SET company_name=$comname,company_add=$comadd,price=$pri WHERE id=$id";
$result = mysql_query($query);
echo $result;
if(!$result)
{
echo '<script language="javascript">';
echo 'alert("something went Wrong...:("); location.href="edit.php"';
echo '</script>';
}else{
echo '<script language="javascript">';
echo 'alert("successfully updated!!!"); location.href="edit.php"';
echo '</script>';
}
}
?>
答案 0 :(得分:2)
您可以使用以下方法来避免使用直接替换值,而不是使用直接替换值。
你基本上有两个选择来实现这个目标:
使用PDO(适用于任何支持的数据库驱动程序):
$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name'); $stmt->execute(array('name' => $name)); foreach ($stmt as $row) { // do something with $row }
使用MySQLi(用于MySQL):
$stmt = $dbConnection->prepare('SELECT * FROM employees WHERE name = ?'); $stmt->bind_param('s', $name); $stmt->execute(); $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { // do something with $row }
答案 1 :(得分:0)
您必须将字符值放在单引号中:
$query ="UPDATE login SET company_name='$comname',company_add='$comadd',price=$pri WHERE id=$id";
使用已弃用的mysql_*
API 停止。将mysqli_*
或PDO
与准备好的语句一起使用。
Atleast使用错误函数来获取错误消息。