php ajax mysql 出错,php – 从mysql切换到mysqli后,Ajax的更新语句不能正常工作,但没有错误显示...
參見英文答案 > When to use single quotes, double quotes, and back ticks in MySQL????????????????????????????????????12個
我有一個代碼,與mysql工作正常,但已切換到mysqli它不再運行.數據在選擇按鈕的表格中正確顯示,它看起來像我得到保存gif(因為正在調用Ajax),但是更新語句不會更新數據庫.
似乎沒有工作的部分是saveedit.php:
require_once("dbcontroller.php");
$db_handle = new DBController();
$column=$_POST['column'];
$value=$_POST['value'];
$id=$_POST['id'];
$sql = "UPDATE php_interview_questions SET `$column` = '$value' WHERE id=$id)";
$result = mysqli_query ($conn, $sql) or die(mysqli_error ($dbc));
?>
主頁是
require_once("dbcontroller.php");
$db_handle = new DBController();
$sql = "SELECT * from php_interview_questions";
$faq = $db_handle->runQuery($sql);
?>
PHP MySQL Inline Editing using jQuery Ajaxfunction showEdit(editableObj) {
$(editableObj).css("background","#FFF");
}
function saveToDatabase(editableObj,column,id) {
$(editableObj).css("background","#FFF url(loaderIcon.gif) no-repeat right");
$.ajax({
url: "saveedit.php",
type: "POST",
data:'column='+column+'&editval='+editableObj.innerHTML+'&id='+id,
success: function(data){
$(editableObj).css("background","#FDFDFD");
}
});
}
Q.No.QuestionAnswer
foreach($faq as $k=>$v) {
?>
<?php echo $k+1; ?>')" onClick="showEdit(this);"><?php echo $faq[$k]["question"]; ?>')" onClick="showEdit(this);"><?php echo $faq[$k]["answer"]; ?>}
?>
使用db_controller.php連接到數據庫并處理結果集創建(數據庫連接詳細信息位于此處未發布的文件中):
function __construct() {
$conn = $this->connectDB();
if(!empty($conn)) {
$this->selectDB($conn);
}
}
function connectDB() {
$conn = mysqli_connect($this->host,$this->user,$this->password);
return $conn;
}
function selectDB($conn) {
mysqli_select_db($conn, $this->database);
}
function runQuery($query) {
$conn = mysqli_connect($this->host,$this->user,$this->password);
mysqli_select_db($conn, $this->database);
$result = mysqli_query($conn, $query)or die(mysqli_error($conn));
while($row=mysqli_fetch_assoc($result)) {
$resultset[] = $row;
}
if(!empty($resultset))
return $resultset;
}
function numRows($query) {
$result = mysqli_query($conn, $query);
$rowcount = mysqli_num_rows($result);
return $rowcount;
}
}
?>
我現在已經將dbcontroller更改為以下內容以簡化并嘗試拋出錯誤但仍然沒有得到任何結果
class DBController {
private $host = "***********";
private $user = "***********";
private $password = "**********";
private $database = "************";
function __construct() {
$conn = mysqli_connect($this->host,$this->user,$this->password,$this->database) OR die (mysqli_connect_error());
}
function runQuery($query) {
$conn = mysqli_connect($this->host,$this->user,$this->password);
mysqli_select_db($conn, $this->database);
$result = mysqli_query($conn, $query)or die(mysqli_error($conn));
while($row=mysqli_fetch_assoc($result)) {
$resultset[] = $row;
}
if(!empty($resultset))
return $resultset;
}
function numRows($query) {
$result = mysqli_query($conn, $query);
$rowcount = mysqli_num_rows($result);
return $rowcount;
}
}
?
>
解決方法:
刪除列周圍的單個qoutes名稱:
$sql = "UPDATE php_interview_questions SET $column = '$value' WHERE id=$id)";
或者,如果列中有特殊字符,請使用反引號來逃避它們.
$sql = "UPDATE php_interview_questions SET `$column` = '$value' WHERE id=$id)";
如果id是一個數值,你也不需要單個qoutes.
標簽:jquery,php,mysql,ajax,mysqli
來源: https://codeday.me/bug/20190623/1274705.html
總結
以上是生活随笔為你收集整理的php ajax mysql 出错,php – 从mysql切换到mysqli后,Ajax的更新语句不能正常工作,但没有错误显示...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab to r,matlab t
- 下一篇: java多字段排序,Java8对多个字段