此腳本用於與Android應用PHP - 致命錯誤:調用一個成員函數bind_param()一個非對象 -
錯誤: 2致命錯誤:調用一個成員函數bind_param()在非對象中**在線36
在我的腳本中有三個sql查詢,第一個是正確運行,但另外兩個不是。
我真的不明白爲什麼,因爲我做的都是同樣的東西...
PHP
<?php
ini_set("display_errors", 1);
error_reporting(E_ALL);
$con = mysqli_connect("******","******","******","******");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else {
// If all the input are ok
if(isset($_REQUEST['firstName']) AND isset($_REQUEST['lastName']) AND isset($_REQUEST['phone']) AND isset($_REQUEST['linkedPhone']) AND isset($_REQUEST['imei'])) {
$firstname = $_REQUEST['firstName'];
$lastName = $_REQUEST['lastName'];
$phone = $_REQUEST['phone'];
$linkedPhone = $_REQUEST['linkedPhone'];
$imei = $_REQUEST['imei'];
$req = $con->prepare('SELECT idUser FROM user WHERE phone = ?');
$req->bind_param("s", $_REQUEST['linkedPhone']);
$req->execute();
$req -> bind_result($idFollowed);
$result = $req->fetch();
$idFollowed = "".$idFollowed;
echo $idFollowed;
// if linkedPhone doesn't exist
if(!$result) {
$return['result'] = "Linked phone doesn't exist";
}
else {
$req2 = $con->prepare('INSERT INTO user (firstName, lastName, phone, idFollowed, imei) VALUES (?, ?, ?, ?, ?)');
// Work using phpMyAdmin
// INSERT INTO user (firstName, lastName, phone, idFollowed) VALUES ('Gael', 'Fontenelle', '', '1');
$req2->bind_param("sssss", $_REQUEST['firstName'], $_REQUEST['lastName'], $_REQUEST['phone'], $idFollowed, $_REQUEST['imei']); // ERROR HERE
$req2->execute();
// Find the id of the new user
$req3 = $con->prepare('SELECT idUser FROM user WHERE phone = ?');
$req3->bind_param("s", $_REQUEST['phone']); // ERROR HERE
$req3->execute();
$req3 -> bind_result($idUser);
$result = $req->fetch();
if(!$result) {
$return['result'] = "Error in the registration process";
}
else {
$return['result'] = "".$idUser;
}
}
}
else {
// Display the error
$return['result'] = "Missing data!";
}
echo json_encode($return);
}
mysqli_close($con);
?>
SQL
CREATE TABLE user (
idUser int NOT NULL auto_increment,
firstName varchar(50) NOT NULL,
lastName varchar(50) NOT NULL,
phone varchar(50) NOT NULL,
idFollowed int default 0, -- 0 if it's the primary user
validation boolean NOT NULL, default 0, -- 1 = VALIDATION OK
imei varchar(50) NOT NULL,
PRIMARY KEY (idUser),
FOREIGN KEY (idFollowed) REFERENCES idUser (user)
);
INSERT INTO user (firstName, lastName, phone, imei) VALUES
('Steve', 'Jobs', '0836656565651', '23456789765'),
('Steve', 'Wozniak', '0836656565652', '23456789765'),
('Bill', 'Gates', '0836656565653', '23456789765'),
('Steve', 'Balmer', '0836656565654', '23456789765'),
('Larry', 'Pagen', '0836656565655', '23456789765'),
('Serguei', 'Brin', '0836656565656', '23456789765');
的[調用成員函數綁定\ _Param()一個非對象]可能重複(http://stackoverflow.com/questions/4488035/call-to- a-member-function-bind-param-on-a-non-object) – CBroe
首先檢查這個執行是否達到您滿意的條件?可能可能它還沒有達到,嘗試echo - die()在您的預期條件 – SagarPPanchal