Пожалуйста, помогите мне решить одну проблему. Я потратил много времени, но все же не могу найти, что случилось.
A имеют базу данных mySql в сети с именем "c3chickens". Он имеет 1 таблицу "цыплят" и содержит 3 строки: идентификатор, псевдоним и партитуру. Мое приложение подключается к базе данных, считывает и анализирует данные и показывает результат. Он работает нормально.
Но мне также нужно писать новые псевдонимы и оценки в столбцах базы данных. Вот код для этой операции в xcode:
NSDictionary *jsonElementToServer = [[NSDictionary alloc] initWithObjectsAndKeys:login, @"login", bestScore, @"score", nil];
NSLog(@"score %@", [jsonElementToServer description]);
NSError* err = nil;
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:jsonElementToServer options:0 error:&err];
NSString *url = @"http://chickens.gol.com/php.php";
url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest *theRequest=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0f];
NSMutableData *body = [NSMutableData data];
[body appendData:jsonData];
[theRequest setHTTPBody:body];
[theRequest addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[theRequest setHTTPMethod:@"POST"];
NSURLConnection *connection = [NSURLConnection connectionWithRequest:theRequest delegate:self];
if (connection) {
NSLog(@"connect");
self.infoData = [NSMutableData data];
} else {
NSLog(@"Connection failed");
}
И вот мой файл php.php:
<?php
$username = "...";
$password = "...";
$hostname = "localhost";
$dbnamemysql = "c3chickens";
$mysqli = new mysqli($hostname, $username, $password, $dbnamemysql);
if(!$mysqli){
exit("ERROR DB");
$result = "NO METHOD";
}else{
mysql_select_db( 'c3chickens' );
mysql_query( "INSERT INTO chickens ('nickname', 'score') VALUES ( null, null, '".
mysql_real_escape_string( $_REQUEST['login'] ).
"', '".
mysql_real_escape_string( $_REQUEST['score'] ).
"')" );
$result = $mysqli->query($query);
}
?>
Раньше я не использовал PHP, поэтому я не знаю этого языка. Я читал примеры в Интернете и пробовал много вариантов этого php файла, но никаких результатов. Я подозреваю, что пропустил некоторые важные и простые детали.
Никогда не смешивайте mysql с mysqli.
Напишите свой PHP-код, как показано ниже.
// Connection object
$con = mysqli_connect($hostname, $username, $password, $dbnamemysql) or die("Some error occurred during connection " . mysqli_error($con));
// Get data in variables. Here use mysqli_real_escape_string
$login = mysqli_real_escape_string($con, $_REQUEST['login']);
$score = mysqli_real_escape_string($con, $_REQUEST['score']);
// Query execution
$result = mysqli_query($con , "INSERT INTO chickens('nickname', 'score') VALUES('$login', '$score')" );
// $result will return true or false
if($result){
echo 'success';
}else{
echo("Error description: " . mysqli_error($con));
}
Напишите ниже двух строк при запуске файла: -
// It will show all php warning, notice, and errors.
error_reporting(E_ALL);
ini_set('display_errors', 1);
Надеюсь, это поможет вам :)