4

私はこのようなphpコードを持っています:

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

mysqli_fetch_arrayここに示すように変換しようとしていますhttp://php.net/manual/en/mysqli-result.fetch-array.php(例1オブジェクト指向スタイル)

この例が「$result」の意味するところがわかりません。

これは私がこれまでに私のコードを変換したものです:

<?php 
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.<br />" : "Nothing changed. <br />"; 
echo "<a href='list.php'>Back</a>";
} 
$row = $result->fetch_array($mysqli->query("SELECT * FROM `tblFacilityHrs` WHERE `uid` = '$uid'"));
$row2 = $result2->fetch_array($mysqli->query("SELECT * FROM `tblFacilityHrsDateTimes` WHERE `id` = '$id'"));
?>

私がmysqliを学んでいるので、おそらく多くの間違いがありますが、今はエラーが発生します

致命的なエラー:メンバー関数fetch_array()の呼び出し

4

2 に答える 2

5

UPDATEクエリは結果オブジェクトを返しませんTRUE。(成功したと仮定して)返します。次に、を呼び出そうとしていますがTRUE->fetch_array()、これは明らかに機能しません。

さて、あなたが実際にやりたいことをするために、これを試してください:

$row = $mysqli->query("SELECT.....")->fetch_array();
于 2012-05-09T14:28:27.060 に答える
1

古い結果オブジェクト(UPDATEの結果)を使用して新しいクエリの結果を取得しようとしているようです。最初に新しいクエリを実行し、その結果をオブジェクトに割り当ててから、オブジェクトから結果をフェッチする必要があります。書き直されたスクリプトの最後の3行を確認してください。

$facilityHoursQueryResult = $mysqli->query("SELECT * FROM `tblFacilityHrs` WHERE `uid` = '$uid'");
$facilityHoursDateTimesQueryResult = $mysqli->query("SELECT * FROM `tblFacilityHrsDateTimes` WHERE `id` = '$id'");

$facilityHoursRow = $facilityHoursQueryResult == FALSE ? NULL : $facilityHoursQueryResult->fetch_array();
$facilityDateTimesRow = $facilityHoursDateTimesQueryResult == FALSE ? NULL : $facilityHoursDateTimesQueryResult->fetch_array();
?>

他の結果オブジェクトメソッドを含む役立つページは次のとおりです 。http ://www.php.net/manual/en/class.mysqli-result.php

于 2012-05-09T14:35:43.717 に答える