[英]Fatal error: Cannot pass parameter 2 by reference when using PHP and MYSQL
我正在使用PHP PDO使用PHP插入MYSQL數據庫。 我收到錯誤消息:
致命錯誤:無法在第200行的/home/sandyit/public_html/hosting/findibuzz/design2/sign-up.php中通過引用傳遞參數2
這是我的代碼:
$ ID是一個自動遞增的整數,其余的是varchar變量,示例如下所示:
$db = new PDO('mysql:host=localhost;dbname=dbname;charset=utf8', 'dbusername', 'dbpass');
$FULLNAME = "David";
$PW_HASH = "sadsad";
$SALT = "adadad";
$EMAIL_ADDRESS = "david@gmail.com";
$ID=0;
$addrequest = $db->prepare("INSERT INTO FB_USERS (ID,FULL_NAME,PASSWORD,PASSWORD_SALT,EMAIL_ADDRESS) VALUES (:ID,:FULL_NAME,:PASSWORD,:PASSWORD_SALT,:EMAIL_ADDRESS)");
$addrequest->bindParam(':ID',$ID, PDO::PARAM_INT);
$addrequest->bindParam(':FULL_NAME',$FULL_NAME, PDO::PARAM_STR);
$addrequest->bindParam(':PASSWORD',$PW_HASH, PDO::PARAM_STR);
$addrequest->bindParam(':PASSWORD_SALT',$SALT, PDO::PARAM_STR);
$addrequest->bindParam(':EMAIL_ADDRESS',$EMAIL_ADDRESS, PDO::PARAM_STR);
$addrequest->execute();
$addrequest->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
我知道我出了點問題,但是我無法發現錯誤,請給我一些建議嗎?
謝謝
刪除'$ID'
引號
$addrequest->bindParam(':ID',$ID, PDO::PARAM_INT);
僅供參考。 我知道這不會幫助您解決問題,但是您可以執行以下操作(請參見下面的代碼)以達到相同的結果:
$db = new PDO('mysql:host=localhost;dbname=dbname;charset=utf8', 'dbusername', 'dbpass');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO FB_USERS (FULL_NAME,PASSWORD,PASSWORD_SALT,EMAIL_ADDRESS)
VALUES (:FULL_NAME,:PASSWORD,:PASSWORD_SALT,:EMAIL_ADDRESS)";
$stmt = $db->prepare($sql);
$params = array
(
'FULL_NAME'=>'David',
'PASSWORD'=>'sadsad',
'PASSWORD_SALT'=>'adadad',
'EMAIL_ADDRESS'=>'david@gmail.com'
);
$stmt->execute($params)
我發現使用數組比將其傳遞給語句更容易。 但是我想這只是個味道。 就像我說的那樣,這僅供參考,不會幫助您解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.