0
我試過尋找,但無法找到爲什麼我的代碼不工作。PDO BindParam和BindValue不能正常工作
這是我無法工作 - 查詢不返回任何內容,實際上處理停止在執行。
如果我在execute
硬編碼值,它的工作原理:
$CID = $_POST [ 'loginPageCID' ];
$LID = $_POST [ 'loginPageLID' ];
$PWD = $_POST [ 'loginPagePwd' ];
require_once('connectdb.php');
$sql = "
SELECT u.*, c.cname, c.cstatus
FROM t_users u, t_customers c
WHERE u.cid = ?
AND c.cid = u.cid
AND u.login_id = ?
AND u.pwhash = ?
";
$stmt = $conn->prepare ($sql);
$stmt->execute (array(1, 'su1', 'hello'));
$row = $stmt->fetchAll();
隨着它上面的工作,但如果我嘗試使用變量的執行似乎靜默失敗:
$CID = $_POST [ 'loginPageCID' ];
$LID = $_POST [ 'loginPageLID' ];
$PWD = $_POST [ 'loginPagePwd' ];
require_once('connectdb.php');
$sql = "
SELECT u.*, c.cname, c.cstatus
FROM ids_users u, ids_customers c
WHERE u.cid = ?
AND c.cid = u.cid
AND u.login_id = ?
AND u.pwhash = ?
";
$stmt = $conn->prepare ($sql);
$stmt->bindParam(1, $CID, PDO::PARAM_INT);
$stmt->bindParam(2, $LID, PDO::PARAM_STR);
$stmt->bindParam(3, $PWD, PDO::PARAM_STR);
$stmt->execute(); // fails here
$row = $stmt->fetchAll();
編輯:
connectdb.php如下:
$conn;
try {
$conn = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo "Error: " . $e->getMessage();
}
你有[啓用例外](http://php.net/manual/en/pdo.error-handling.php)?如果是這樣,什麼都不應該默默地失敗。 – tadman
@tadman - 添加了用於創建問題連接的代碼。 – TenG
仔細查看您回來的結果對象。仔細檢查您的錯誤日誌中是否有任何通知。 – tadman