mysql到mysqli转变表_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 Ajax

function 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;

}

}

?

&GT

解决方法:

删除列周围的单个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.来源:https://www.icode9.com/content-2-262651.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值