簡體   English   中英

致命錯誤:使用PHP和MYSQL時無法通過引用傳遞參數2

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM