2015-05-15 3 views
0
function insert_data($array){ 
    $dbh=new PDO('sqlite:C:\test.sqlite'); 
    $sql = "INSERT INTO quote (symbol,price) VALUES (?,?)"; 
    $q = $dbh->prepare($sql); 
    $q->execute($array); 
    $dbh=null; 
} 

Я хочу определить C:\test.sqlite как константу.Как написать константу в моей функции?

define('db_name','C:\test.sqlite'); 

Но я не могу использовать константу в своей функции insert_data.

function insert_data($array){ 
    $dbh=new PDO("sqlite:db_name"); 
    $sql = "INSERT INTO quote (symbol,price) VALUES (?,?)"; 
    $q = $dbh->prepare($sql); 
    $q->execute($array); 
    $dbh=null; 
} 

ошибка происходит:

Fatal error: Call to a member function execute() on a non-object in.... 

Я не хочу, чтобы написать эту функцию в качестве формата:

function insert_data($array,$db){ 
    $dbh=new PDO("sqlite:{$db}"); 
    $sql = "INSERT INTO quote (symbol,price) VALUES (?,?)"; 
    $q = $dbh->prepare($sql); 
    $q->execute($array); 
    $dbh=null; 
} 

Как это исправить?

+0

Почему бы не использовать 'global'? –

+0

Используйте глобальную переменную '$ db_name = 'C: \ test.sqlite'' вне вашей функции. – NendoTaka

ответ

0

Определить переменную - $db = 'C:\test.sqlite';

и сделать его global.

function insert_data($array){ 
    global $db; 
    $dbh=new PDO("sqlite:{$db}"); 
    $sql = "INSERT INTO quote (symbol,price) VALUES (?,?)"; 
    $q = $dbh->prepare($sql); 
    $q->execute($array); 
    $dbh=null; 
} 

Read it here

Смежные вопросы