Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Strict Standards: Only variables should be assigned by reference PHP 5.4

I upgraded my PHP version to 5.4 (XAMPP 1.7.3 to 1.8.0). Now I see Strict Standards error, for myDBconnection:

Strict Standards: Only variables should be assigned by reference in C:\xampp\htdocs\alous\include\dbconn.php on line 4

dbconn.php:

<?php
    defined('_VALID') or die('Restricted Access!');

    $conn = &ADONewConnection($config['db_type']); // <--- This Line 4

    if ( !$conn->Connect($config['db_host'],
                         $config['db_user'],
                         $config['db_pass'],
                         $config['db_name'])) {

        echo 'Could not connect to MySQL! Please check your database settings!';
        die();
    }
    $conn->execute("SET NAMES 'utf8'");
?>

Note: I don't need to disable Strict Standards in php.ini with this method error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT! I want to fix my PHP code.

like image 757
BBKing Avatar asked Aug 02 '12 12:08

BBKing


2 Answers

You should remove the & (ampersand) symbol, so that line 4 will look like this:

$conn = ADONewConnection($config['db_type']);

This is because ADONewConnection already returns an object by reference. As per documentation, assigning the result of a reference to object by reference results in an E_DEPRECATED message as of PHP 5.3.0

like image 77
Ozair Kafray Avatar answered Oct 19 '22 07:10

Ozair Kafray


It's because you're trying to assign an object by reference. Remove the ampersand and your script should work as intended.

like image 10
VettelS Avatar answered Oct 19 '22 06:10

VettelS