PHP更新混乱
我正在使用以下代码更新MySQL行。有谁能告诉我,如果更新查询成功且没有任何错误,如何对更新查询进行错误检查并仅打印成功?如果更新查询不成功,则打印失败PHP更新混乱,php,mysql,Php,Mysql,我正在使用以下代码更新MySQL行。有谁能告诉我,如果更新查询成功且没有任何错误,如何对更新查询进行错误检查并仅打印成功?如果更新查询不成功,则打印失败 <?php //start the session session_start(); // include db configuration include('include/db_connect.php'); // user's information $member_id = $_SESSION['id']; $member_name
<?php
//start the session
session_start();
// include db configuration
include('include/db_connect.php');
// user's information
$member_id = $_SESSION['id'];
$member_name = $_SESSION['name'];
$contact_id = $_GET['id'];
// $get_contact = "SELECT * FROM `contacts` where contacts_id = '$contact_id'";
$get_contact = mysqli_query($conn, "SELECT * FROM `contacts` where contacts_id = '$contact_id'");
$row = mysqli_fetch_array($get_contact);
if(isset($_POST['submit'])){
$contact_id = $_POST['contact_id'];
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$cphone = $_POST['cphone'];
$city = $_POST['city'];
$update = "UPDATE `contacts` SET `first_name`='$fname',`last_name`='$lname',`cellphone_number`='$cphone',`city`='$city' WHERE contacts_id = ". $contact_id;
if (mysqli_query($conn, $update)) {
echo "
<script>
var msg = confirm('Contact Updated');
if(msg == true || msg == false){
location.href='update_contact.php?id=$contact_id';
}
</script>
";
} else {
echo "Error: " . $update . "<br>" . mysqli_error($conn);
}
}
?>
使用此功能:
函数alertBox($alert\u msg,$redirect\u link)
{
$alert='';
$alert.='alert(“.$alert_msg.”;”;
如果(!empty($redirect_link)):
$alert.='window.location=“”.$redirect_link.“;”;
endif;
$alert.=';';
返回$alert;
}
//谢谢你打电话来。。
if((mysqli_查询($con,$sql))
{
echo alertBox(“SuccessFull”、“example.php”);
}
首先,请学习如何使用基于过程的查询以避免SQL注入(我不是在这里提供有关过程和SQL注入的教程,它只是警告恶意代码)现在是您的代码解决方案。在查询中将变量与字符串连接的方式中出现了问题。我已经为您修复了这一部分
如果您仍然收到任何错误,请共享您收到的错误以及错误消息
<?php
//start the session
session_start();
// include db configuration
include('include/db_connect.php');
// user's information
$member_id = $_SESSION['id'];
$member_name = $_SESSION['name'];
$contact_id = $_GET['id'];
$get_contact = mysqli_query($conn, "SELECT * FROM `contacts` where contacts_id = '".$contact_id."'");
$row = mysqli_fetch_array($get_contact);
if(isset($_POST['submit'])){
$contact_id = $_POST['contact_id'];
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$cphone = $_POST['cphone'];
$city = $_POST['city'];
$update = "UPDATE `contacts` SET `first_name`='".$fname."',`last_name`='".$lname."',`cellphone_number`='".$cphone."',`city`='".$city."' WHERE contacts_id = '".$contact_id."'";
if (mysqli_query($conn, $update)) {
echo "
<script>
var msg = confirm('Contact Updated');
if(msg == true || msg == false){
location.href='update_contact.php?id=$contact_id';
}
</script>
";
} else {
echo "Error: " . $update . "<br>" . mysqli_error($conn);
}
}
?>
首先修复。我只是查看错误,只需访问我的github帐户。(如果(msg==true | | msg==false)
?为什么还要使用if语句(或者甚至是确认()
,只要你不关心响应)?发现多个问题。1.没有使用SELECT查询的结果(不过,您可能会在其他地方使用它);2.SQL注入可能发生在您的UPDATE语句中;3.使用confirm()
JS函数没有意义(您的意思是alert()
?);4.如果没有HTML头和正文输出,您不应该只回显
标记;5.大多数反勾号都是无用的。更重要的是,您应该清楚地定义查询失败的原因。如果您的UPDATE
语句更新了零记录,您是否将其视为失败?您应该通过mysqli受影响的行($conn)检查受影响的行数
。这与问题完全无关。
<?php
//start the session
session_start();
// include db configuration
include('include/db_connect.php');
// user's information
$member_id = $_SESSION['id'];
$member_name = $_SESSION['name'];
$contact_id = $_GET['id'];
$get_contact = mysqli_query($conn, "SELECT * FROM `contacts` where contacts_id = '".$contact_id."'");
$row = mysqli_fetch_array($get_contact);
if(isset($_POST['submit'])){
$contact_id = $_POST['contact_id'];
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$cphone = $_POST['cphone'];
$city = $_POST['city'];
$update = "UPDATE `contacts` SET `first_name`='".$fname."',`last_name`='".$lname."',`cellphone_number`='".$cphone."',`city`='".$city."' WHERE contacts_id = '".$contact_id."'";
if (mysqli_query($conn, $update)) {
echo "
<script>
var msg = confirm('Contact Updated');
if(msg == true || msg == false){
location.href='update_contact.php?id=$contact_id';
}
</script>
";
} else {
echo "Error: " . $update . "<br>" . mysqli_error($conn);
}
}
?>