2016-01-20 1 views
0

Попытка написать php mysql connect и query. Он дает ошибку ». Уведомление: использование неопределенных констант, купленных - предполагаемых« купленных »,« попыток возврата, которые не решались. Может кто-то сказать, где мне нужно исправить.имя поля php-кода с дефис

<?php 
$host="localhost"; 
$port=3306; 
$socket=""; 
$user="xxxx"; 
$password="xxxx"; 
$dbname="amazon"; 
$con = new mysqli($host, $user, $password, $dbname, $port, $socket) 
or die ('Could not connect to the database server' .  mysqli_connect_error()); 

$query = "SELECT SUM(`quantity-purchased`), DATE(`purchase-date`),Tally_SKU  FROM daily_orders GROUP BY DATE(daily_orders.`purchase-date`),Tally_SKU"; 


if ($stmt = $con->prepare($query)) { 
$stmt->execute(); 
$stmt->bind_result($quantity-purchased, $purchase-date, $Tally_SKU); 
while ($stmt->fetch()) { 
    //printf("%s, %s, %s\n", $quantity-purchased, $purchase-date,  $Tally_SKU); 
} 
$stmt->close(); 
} 
//$con->close(); 


?> 

ответ

0

В именах переменных не допускаются дефисы.

Некоторые правила для переменных:

1) переменные должны начинаться только с алфавитов (A-Za-Z) или подчеркивания.

2) Переменные не должны содержать дефисы.

3) Переменные не должны содержать пробелы.

4) Переменные не должны содержать никаких специальных символов, кроме символов подчеркивания.

Reference

+0

Не могли бы вы, пожалуйста, руководство меня, как по прибывшему. изменение имени столбца невозможно. Любой другой выход – Kanted

+0

@Kanted: вы должны изменить имя переменной только в строке '$ stmt-> bind_result ($ количество-покупка, $ buy-date, $ Tally_SKU);' – AnkiiG

1

Наилучшим решением является использование собственных имен переменных. Нет необходимости, чтобы они были равны именам столбцов вашей базы данных.

if ($stmt = $con->prepare($query)) { 
    $stmt->execute(); 
    $stmt->bind_result($quantityPurchased, $purchaseDate, $TallySKU); 
    while ($stmt->fetch()) { 
     printf("%s, %s, %s\n", $quantityPurchased, $purchaseDate, $TallySKU); 
    } 
} 

Однако, вы можете использовать дефис в именах переменных, хотя не рекомендуется, если заключить их в фигурные скобки:

if ($stmt = $con->prepare($query)) { 
    $stmt->execute(); 
    $stmt->bind_result(${'quantity-purchased'}, ${'purchase-date'}, $Tally_SKU); 
    while ($stmt->fetch()) { 
     printf("%s, %s, %s\n", ${'quantity-purchased'}, ${'purchase-date'}, $Tally_SKU); 
    } 
} 
Смежные вопросы