mysql转mysqli,从mysql转换为mysqli(mysql_fetch_array)

这篇博客讨论了将PHP代码从使用mysql_函数转换到mysqli_函数的过程中遇到的问题。作者尝试更新查询以使用面向对象的mysqli风格,但在调用fetch_array()时遇到了错误。解决方案指出,UPDATE查询不返回结果集,因此不能直接调用fetch_array()。修正后的代码应直接使用mysqli_query()的结果来获取数组。
摘要由CSDN通过智能技术生成

I have some php code that was like this:

$row = mysql_fetch_array ( mysql_query("SELECT * FROM `tblFacilityHrs` WHERE `uid` = '$uid'"));

I'm now trying to convert it to mysqli_fetch_array as shown here http://php.net/manual/en/mysqli-result.fetch-array.php (Example #1 Object oriented style)

I'm not sure what the example means by "$result".

This is what I've converted my code to so far:

include('../config.php');

if (isset($_GET['uid']) ) {

$uid = $_GET['uid'];

$id = $_GET['id'];

if (isset($_POST['submitted'])) {

foreach($_POST AS $key => $value) { $_POST[$key] = mysqli_real_escape_string($value); }

//Query for tblFacilityHrs

$sql = " UPDATE tblFacilityHrs SET `title`='{$_POST['title']}',`description`='{$_POST['description']}' WHERE `uid` = '$uid' ";

$result = $mysqli->query($sql) or die($mysqli->error);

//Query for tblFacilityHrsDateTimes

$sql2 = "UPDATE tblFacilityHrsDateTimes SET `startEventDate`='{$_POST['startEventDate']}',`endEventDate`='{$_POST['endEventDate']}', `startTime`='{$_POST['startTime']}',`endTime`='{$_POST['endTime']}',`days`='{$_POST['days']}',`recurrence`='{$_POST['recurrence']},`finalDate`='{$_POST['finalDate']}' WHERE `id` = '$id' "; print $sql2;

$result2 = $mysqli->query($sql2) or die($mysqli->error);

echo ($mysqli->affected_rows) ? "Edited row.
" : "Nothing changed.
";

echo "Back";

}

$row = $result->fetch_array($mysqli->query("SELECT * FROM `tblFacilityHrs` WHERE `uid` = '$uid'"));

$row2 = $result2->fetch_array($mysqli->query("SELECT * FROM `tblFacilityHrsDateTimes` WHERE `id` = '$id'"));

?>

There is probably a lot wrong with as I am learning mysqli, but right now it errors on

Fatal error: Call to a member function fetch_array()

解决方案

UPDATE queries do not return result objects, it returns TRUE (assuming success). You're then trying to call TRUE->fetch_array(), which obviously won't work.

Now, for doing what you actually want to do, try this:

$row = $mysqli->query("SELECT.....")->fetch_array();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值