2014-01-29 3 views
0

я сделал PHP код с подключением к базе данных с именем test.php, как показано ниже:PHP код не работает в PHP CLI

<? 
$mysqli = new mysqli("localhost","root","","monster"); 

/* check connection */ 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

/* return name of current default database */ 
if ($result = $mysqli->query("INSERT INTO `earth` (`monster_id`, `type`, `name`) VALUES 
(NULL, 'defender', 'tortoise') 
")) { 
    $row = $result->fetch_row(); 
    printf("Default database is %s.\n", $row[0]); 
    $result->close(); 
} 
$mysqli->close(); 
?> 

это работает, когда я вызываю через браузер http://localhost/learn/test.php и данные вставленной в моей базе данных

но когда я работаю в PHP CLI

php -r ' $mysqli = new mysqli("localhost","root","","monster"); 

    /* check connection */ 
    if (mysqli_connect_errno()) { 
     printf("Connect failed: %s\n", mysqli_connect_error()); 
     exit(); 
    } 

    /* return name of current default database */ 
    if ($result = $mysqli->query("INSERT INTO `earth` (`monster_id`, `type`, `name`) VALUES 
    (NULL, 'defender', 'tortoise') 
    ")) { 
     $row = $result->fetch_row(); 
     printf("Default database is %s.\n", $row[0]); 
     $result->close(); 
    } 
    $mysqli->close();' 

данные не вставлены. обновление сейчас i tes to eval ($ code); кажется OKAY в окнах, но не в LINUX

+0

какая ошибка ваш получать? –

+0

Ярлык синтаксиса, похоже, кажется, что у вас есть проблема с экранированием цитаты. – Ben

+0

теперь i tes to eval ($ code); кажется OKAY в окнах, но не в LINUX –

ответ

1

попробовать это

php -r ' $mysqli = new mysqli("localhost","root","","monster"); 

    /* check connection */ 
    if (mysqli_connect_errno()) { 
     printf("Connect failed: %s\n", mysqli_connect_error()); 
     exit(); 
    } 

    /* return name of current default database */ 
    if ($result = $mysqli->query("INSERT INTO `earth` (`monster_id`, `type`, `name`) VALUES 
    (NULL, \'defender\', \'tortoise\') 
    ")) { 
     $row = $result->fetch_row(); 
     printf("Default database is %s.\n", $row[0]); 
     $result->close(); 
    } 
    $mysqli->close();' 
+0

до сих пор не работает ~ _ ~ –

+0

изменения (NULL, \ 'защитника \', \ 'черепаха \') к (NULL, \ "защитник \", \ "черепаха \") – NLSaini

+0

еще не работает NLSaini спасибо за ответ –

0

У меня есть синтаксическая ошибка. Вы начинаете свой php-код с 'и в заявлении INSERT INTO, которое вы обмениваете ваши значения и с помощью'. Может, в этом проблема?

0

Попробуйте

php -r ' $mysqli = new mysqli("localhost","root","","monster"); 

/* check connection */ 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 
$type="defender"; 
$name="tortoise"; 
/* return name of current default database */ 
if ($result = $mysqli->query("INSERT INTO `earth` (`monster_id`, `type`, `name`) VALUES 
(NULL, $type, $name)")) 
{ 
    $row = $result->fetch_row(); 
    printf("Default database is %s.\n", $row[0]); 
    $result->close(); 
} 
$mysqli->close();' 
+0

Я уже делаю значения становятся переменными, но все же не работает –