2014-02-04 2 views
1

У меня возникла проблема, из-за которой я до сих пор не смог найти какой-либо ресурс, чтобы помочь мне в этом. Надеюсь, это можно решить здесь. Я вроде новичок на php, поэтому мне жаль, если это очень просто.mysqli не работает в командной строке

У меня есть php-скрипт, который подключается к базе данных mysql, работающей под xampp (apache 2.4 и php 5.4) в Windows 8. Этот скрипт отлично работает в моем браузере, но когда я пытаюсь выполнить его через командную строку (cmd), он не будет работать, и возвращает мне эту ошибку:

Примечание: Undefined переменной: dbhandle в C: \ XAMPP \ HTDOCS \ 4SQ-вытяжная \ _get_weather.ph р на линии 29 Внимание: mysqli_query() ожидает параметр 1, чтобы быть MySQLi, нуль приведены в C: \ XAMPP \ HTDOCS \ 4SQ-pull_get_weather.php на линии 30

  • У меня есть расширение = php_mysqli.dll раскомментируйте
  • Я установить переменные PATH и PATHTEXT
  • Я использую эту командную строку для запуска сценария: C: \ XAMPP \ PHP \ php.exe -fc: \ XAMPP \ HTDOCS \ 4SQ-вытяжная \ _get_weather.php

За последний мой PHP код что-то вроде этого:

<?php 
$username = "xxx"; 
$password = "xxx"; 
$hostname = "localhost"; 
$database = "4sq"; 
//connection to the database 
$dbhandle = mysqli_connect($hostname, $username, $password, $database) 
    or die("Unable to connect to MySQL"); 
mysqli_select_db($dbhandle, "4sq"); 
?> 

Любые идеи?

+0

Ничего не меняется с этим, но благодаря так или иначе. На самом деле я только добавил эту функцию, потому что у меня не было больше надежд и пытался что-нибудь сказать в Интернете! btw, странно, что stackoverflow не отображает строку в командной строке. Правильный должен иметь счетчик косой черты перед именем файла php: c: \ xampp \ php \ php.exe -fc: \ xampp \ htdocs \ 4sq-pull \ _get_weather.php – diegodacal

+0

(Ваша проблема с косой чертой связана с подчеркиванием символ используется для форматирования _italics_ и \ escapes, поэтому я исправил это для вас, используя двойную слэш-счетчик - я думаю, что вы это имели в виду?) – CBroe

+0

Если оно установило соединение, которое не работало, ваш 'или die (...) 'должен дать вам сообщение, сообщающее вам об этом, - но ошибка говорит вам что-то совершенно другое! Я предполагаю, что вы включили этот сценарий в другой? Тогда, возможно, параметр 'include_path' для выполнения через командную строку отличается или рабочий каталог сценария, поэтому включение не выполняется, а' $ dbhandle' действительно не определено. (Используя 'require' вместо' include', вы должны были бы предупредить вас об этом в первую очередь, поэтому в будущем используйте это для _essential_.) – CBroe

ответ

0

вы можете попробовать этот код я сделал

<?php 
$DATABASE_IP = ""; 
$DATABASE_NAME = ""; 
$DATABASE_PROXY = ""; 

$DATABASE_ADMIN_USERNAME = ""; 
$DATABASE_ADMIN_PASSWORD = ""; 

$link = mysql_connect($DATABASE_IP, $DATABASE_NAME, $DATABASE_ADMIN_PASSWORD); 

if(!$DATABASE_IP == "string") 
{ 
    echo "please fill in required field *IP<br/>"; 
} else { 
    echo ""; 
} 

if(!$DATABASE_NAME == "string") 
{ 
    echo "please fill in required field *Name<br/>"; 
} else { 
    echo ""; 
} 

if(!$link){ 
    die('sorry could not connect at this time)=<br/>' . mysql_error()); 
} 
echo "connected"; 

mysql_close($link); 
?> 
+1

Как это должно помочь с конкретной проблемой ...? – CBroe

+1

У его кода, возможно, была проблема, я опубликовал это, чтобы он мог видеть, был ли это его код или нет. – daniel

+0

Итак, в основном ваш ответ - просто дикая догадка - это не очень полезно. Ограничьте свои ответы на случаи, когда вы _know_, что проблема и как ее исправить. – CBroe

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