我在通过PHP和Ajax将更改的文本更新为SQL时遇到问题。
我不确定哪一个不正确,是通过Ajax发送的数据,还是PHP文件的问题?
这是我的HTML文件
<tr> <td class="editingTab" contenteditable='true' class="texting">{{user.id}}</td> <td contenteditable='true' >{{user.first_name}}</td> <td contenteditable='true' >{{user.last_name}}</td> <td contenteditable='true' >{{user.email}}</td></tr>这是JS文件
$(document).on('blur','table td',function(){ var name = $(this).text(); var last = $(this).text(); var email = $(this).text(); var getId = $(this).parent().parent().parent().attr('id'); $.post('update.php',{name:name, last:last, email:email, id:getId}, function(data){ if(!data) { alert("Failed"); } else {console.log(data); } }); $(this).toggleClass('toggled'); });这里是PHP文件
<?php $conn = mysqli_connect('localhost','nemkeang','nemkic23','users'); $id = $POST_['getId']; $name =$_POST['name']; $last =$_POST['last']; $email =$_POST['email']; $sql = "UPDATE user SET first_name = '".$name."', last_name = '".$last."', email = '".$email."' WHERE id = '".$id."'"; if (!mysqli_query($conn,$sql)) { die('Error: ' . mysqli_error($conn)); } echo "success: ".$name." "; mysqli_close($con); ?>I am having problems updating changed text to SQL, via PHP and Ajax.
I am not sure which one is not correct, is it the data which is sent through Ajax, or a problem with the PHP file?
This is my HTML file
<tr> <td class="editingTab" contenteditable='true' class="texting">{{user.id}}</td> <td contenteditable='true' >{{user.first_name}}</td> <td contenteditable='true' >{{user.last_name}}</td> <td contenteditable='true' >{{user.email}}</td></tr>This is JS file
$(document).on('blur','table td',function(){ var name = $(this).text(); var last = $(this).text(); var email = $(this).text(); var getId = $(this).parent().parent().parent().attr('id'); $.post('update.php',{name:name, last:last, email:email, id:getId}, function(data){ if(!data) { alert("Failed"); } else {console.log(data); } }); $(this).toggleClass('toggled'); });And here is the PHP file
<?php $conn = mysqli_connect('localhost','nemkeang','nemkic23','users'); $id = $POST_['getId']; $name =$_POST['name']; $last =$_POST['last']; $email =$_POST['email']; $sql = "UPDATE user SET first_name = '".$name."', last_name = '".$last."', email = '".$email."' WHERE id = '".$id."'"; if (!mysqli_query($conn,$sql)) { die('Error: ' . mysqli_error($conn)); } echo "success: ".$name." "; mysqli_close($con); ?>最满意答案
我认为问题在于获取id,因此更新操作将失败。尝试这...
mysqli_real_escape_string()函数转义字符串中的特殊字符以用于SQL语句。因此请使用mysqli_real_escape_string() 。
<?php $conn = mysqli_connect('localhost','nemkeang','nemkic23','users'); $id = mysqli_real_escape_string($conn,$_POST['id']); // $name =mysqli_real_escape_string($conn,$_POST['name']); $last =mysqli_real_escape_string($conn,$_POST['last']); $email =mysqli_real_escape_string($conn,$_POST['email']); $sql = "UPDATE user SET first_name = '$name', last_name = '$last', email = '$email' WHERE id = '$id'; if (!mysqli_query($conn,$sql)) { die('Error: ' . mysqli_error($conn)); } echo "success: ".$name." "; mysqli_close($con); ?>I think problem is at getting id so update operation is going to failed.try this...
The mysqli_real_escape_string() function escapes special characters in a string for use in an SQL statement.So use mysqli_real_escape_string().
<?php $conn = mysqli_connect('localhost','nemkeang','nemkic23','users'); $id = mysqli_real_escape_string($conn,$_POST['id']); // $name =mysqli_real_escape_string($conn,$_POST['name']); $last =mysqli_real_escape_string($conn,$_POST['last']); $email =mysqli_real_escape_string($conn,$_POST['email']); $sql = "UPDATE user SET first_name = '$name', last_name = '$last', email = '$email' WHERE id = '$id'; if (!mysqli_query($conn,$sql)) { die('Error: ' . mysqli_error($conn)); } echo "success: ".$name." "; mysqli_close($con); ?>更多推荐
PHP,Ajax,email,电脑培训,计算机培训,IT培训"/> <meta name="description&qu
发布评论