Используйте последовательный цикл for
:
var myStringArray = ["Hello","World"];
var arrayLength = myStringArray.length;
for (var i = 0; i < arrayLength; i++) {
alert(myStringArray[i]);
//Do something
}
@zipcodeman предлагает использовать инструкцию for...in
, но для итерации массивов for-in
следует избегать, этот оператор предназначен для перечисления свойства объекта.
Его нельзя использовать для объектов типа массива, потому что:
Во-вторых, это может дать вам массу проблем, например, если вы расширите Array.prototype
объект, чтобы включить в него метод, это свойство также будет перечислено.
Например:
Array.prototype.foo = "foo!";
var array = ['a', 'b', 'c'];
for (var i in array) {
alert(array[i]);
}
Вышеупомянутый код будет предупреждать: «a», «b», «c »и« foo! ».
Это особенно проблематично, если вы используете некоторую библиотеку, которая в значительной степени опирается на добавление собственных прототипов (например, MooTools).
for-in
как я уже говорил, есть перечислять свойства объекта , например:
var obj = {
"a": 1,
"b": 2,
"c": 3
};
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
// or if (Object.prototype.hasOwnProperty.call(obj,prop)) for safety...
alert("prop: " + prop + " value: " + obj[prop])
}
}
В приведенном выше примере e hasOwnProperty
метод позволяет вам перечислять только собственные свойства , вот и все, только свойства, которые физически имеют объект, никаких унаследованных свойств.
Я бы рекомендовал вам прочитать в следующей статье:
Это сочетание имени пользователя, хоста и пароля не разрешено подключаться к серверу. Проверяйте таблицы разрешений (при необходимости перезагружайте гранты) на сервере и подключайтесь к правильному серверу.
$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
Put " DB_HOST " instead of " DB_SERVER " also
put " DB_USER " Instead of " DB_USERNAME "
, чем работает нормально!
Эта проблема возникла у меня с XAMPP 7 и opencart Arabic 3. Замена localhost на фактическое имя машины решает проблему.
У вас есть два подключения одновременно? Если это так, закройте каждый раз, когда вам это не понадобится.
Аналогичная проблема возникает со мной, с AWS RDS MySQL. Только сейчас ответил на аналогичный вопрос здесь. Посмотрел различные источники, но по этой теме почти весь недостаток ответа. Хотя этот поток помог мне, подстройте его для обновления имен хостов на сервере. Получите доступ к своему SSH и выполните следующие действия:
cd /etc/
sudo nano hosts
Теперь добавьте сюда свои имена хостов: например:
127.0.0.1 localhost
127.0.0.1 subdomain.domain.com [if cname redirected to endpoints]
127.0.0.1 xxxxxxxx.xxxx.xxxxx.rds.amazonaws.com [Endpoints]
и теперь, настроив config/database.php
следующим образом:
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => '35.150.12.345',
'username' => 'user-name-here',
'password' => 'password-here',
'database' => 'database-name-here',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
где 35.150.12.345
- ваш IPv4 Public IP , расположенный на ec2-dashboard > Network Interfaces > Description : RDSNetworkInterface >> IPv4 Public
IP ('35 .150.12.345 ').
Примечание: Пожалуйста обратите внимание, что только IPV4 будет работать с параметром «hostname». hostname, cname, домены выведут ошибку подключения к базе данных.
попробуйте
define("DB_PASSWORD", null);
, и это предупреждения try
$db = @mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
Но я рекомендую вам установить пароль root
вы defIne как DB_USER, но используете как DB_USERNAME. Также php сообщает имя пользователя @ localhost cant access. Не root @ localhost.
Измените параметр define или connect.
Посмотрите на свой код. Вы определили DB_HOST и запросили DB_SERVER. DB_USER и DB_USERNAME Используйте этот код
define("DB_SERVER", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");
$connect = mysqli_connect(DB_SERVER , DB_USER, DB_PASSWORD, DB_DATABASE);
Если вы запустили обновление wamp
define("DB_HOST", "localhost");
На ваш ip-адрес вашего компьютера (my is 192.168.0.25);
define("DB_HOST", "192.168.0.25");
Вы можете найти его в окне, набрав ipconfig в консоли или ifconfig на mac / linux
В определении аргументов есть опечатка, измените DB_HOST на DB_SERVER и DB_USER на DB_USERNAME:
<?php
define("DB_SERVER", "localhost");
define("DB_USERNAME", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");
$db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
?>
Попробуйте изменить:
define("DB_SERVER", "localhost");
на следующее:
define("DB_SERVER", "127.0.0.1");
используйте DB_HOST вместо DB_SERVER
У меня была эта ошибка, пытающаяся подключиться к другому пользователю, чем root
, которую я установил бы для ограничения доступа.
В mysql я настроил пользователя MofX
с хостом %
и он не будет подключаться.
Когда я сменил хост пользователя на 127.0.0.1
, как в «MofX'@'127.0.0.1», он сработал.
Ответ на этот вопрос выше, просто чтобы вы чувствовали себя комфортно, используя все четыре строки одновременно в соединении
<?php
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");
$db = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
// you could test connection eventually using a if and else conditional statement,
// feel free to take out the code below once you see Connected!
if ($db) {
echo "Connected!";
} else {
echo "Connection Failed";
}
?>
Убедитесь, что ваш пароль не имеет специальных символов и просто хранит простой пароль (например: 12345), он будет работать. Это самая странная вещь, которую я когда-либо видел. Я потратил около 2 часов, чтобы понять это.
Примечание: 12345, упомянутый ниже, является вашим простым паролем
GRANT ALL PRIVILEGES ON dbname.* TO 'yourusername'@'%' IDENTIFIED BY '12345';
Это ваш код:
<?php
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");
$db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
?>
Единственной ошибкой, которая вызывает это сообщение, является то, что:
DB_USER
, но вы вызов [as] как DB_USERNAME
. Пожалуйста, будьте внимательнее в следующий раз.
Лучше для программиста начального уровня, который хочет начать кодирование в PHP
не использовать то, что он или она не знает очень хорошо.
ТОЛЬКО в качестве совета попробуйте использовать (в первый раз) код более повсеместно.
ex: не используйте инструкцию define()
, попробуйте использовать объявление переменных как $db_user = 'root';
Имейте приятный опыт:)