Hallo Ich versuche derzeit, meine PHP-Datei mit einer Datenbank zu verbinden, aber aus irgendeinem Grund bekomme ich diesen Fehler zurückgegeben, um mich zu versuchen, die Eigenschaft von Nicht-Objekt zu erhalten. Dies scheint ein Problem mit der Abfrage selbst zu sein, wie es aus Zeile 23 kommt, aber ich kann nicht für das Leben von mir das Problem sehen. Hier ist mein Code jede Hilfe würde sehr geschätzt werden.Versuch, Eigenschaft von non-object, prepared statement
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
include("dbconnect.php");
//get first 3 months
$month = '%'.$_POST['month'].'%';
//month 1 and 2 are currently not in use till issue is fixed
$month2 = '%'.$_POST['month'].'%';
$month3 = '%'.$_POST['month'].'%';
echo $month;
//connect to database and prepare mysqli statement to get day, title, details, time and location if month has any details
//will be adding more details for this statement to get once it is fully tested
if($connect->connect_errno){
printf("connection failed, please try again and if this error occurs again please submit this bug through the contact us page", $connect->connect_error);
exit();
}
$CalendarDetails = $connect->prepare("SELECT `date`, `time`, `title`, `details`, `eventLocation`, `longitude`, `latitude` FROM `calendar` WHERE `date` LIKE ?");
//$CalendarDetails = $connect->prepare("SELECT date, time, title, details, eventLocation, longitude, latitude FROM calendar WHERE date LIKE ?");
//check if connection succeeded
//if (false===$CalendarDetails) {
//error occurs in line below
// die('failed error 1 ' . htmlspecialchars($CalendarDetails->error));
//}
//bind the month to the prepared statement
$CalendarDetails->bind_param("s", $month);
//check if failed
//if (false===$CalendarDetails) {
// die('failed error 2 ' . htmlspecialchars($CalendarDetails->error));
//}
//execute query
$CalendarDetails->execute();
//check if failed
//if (false===$CalendarDetails) {
// die('failed error 3 ' . htmlspecialchars($CalendarDetails->error));
//}
//store results
$CalendarDetails->store_result();
//if (false===$CalendarDetails) {
// die('failed error 4 ' . htmlspecialchars($CalendarDetails->error));
//}
//bind results to separate variables
$CalendarDetails->bind_result($date, $time, $title, $details, $time, $location, $longitude, $latitude);
//get results
if($day != null){
if($month != null){
//create an array to store results and send to app
//$Allevents = array();
$i = 0;
$event[$i] = array();
while($CalendarDetails->fetch()){
$j = strval($i);
//this will combine all results into one string and will be split into an array in java
$event[$j] = $date. "|". $title. "|". $details. "|". $time. "|". $location. "|". $longitude. "|". $latitude;
/*$event['day'][$i] = $day;
$event['title'][$i] = $title;
$event['details'][$i] = $details;
$event['time'][$i] = $time;
$event['location'][$i] = $location;
$event['longitude'][$i] = $longitude;
$event['latitude'][$i] = $latitude;*/
//$Allevents[$i] = $event;
$i++;
}
echo json_encode($event);
mysqli_stmt_close($CalendarDetails);
}else{
echo "month not sent from app";
}
}else{
echo "no events this month";
}
?>
Update mit DBConnect Datei Code
$connect= new mysqli("127.0.0.1",$config['username'],$password,$config['dbname'], 3306);
Update 2 Ich habe die auf die Abfrage beziehen, wenn Aussagen kommentiert und ich jetzt einen ähnlichen Fehler in Zeile 26 erhalten, die
$CalendarDetails->bind_param("s", $month);
ist
Der Fehler, den ich jetzt empfange, ist: Aufruf einer Memberfunktion bind_param() für ein Nicht-Objekt
Update 3 Der Grund, warum meine Prepare-Anweisungen fehlgeschlagen sind, lag an einem Rechtschreibfehler, der Kalender in meiner Datenbank wurde falsch geschrieben.
'$ ereignis [$ j] = $ datum +" | " + ... das sollten Punkte sein und keine Pluszeichen. –
"wie es von Linie 20 kommt" - was ist Linie 20? – FuzzyTree
danke, ich werde das jetzt ändern, mischen php Verkettung mit Java haha. – noob