Отсутствие проблемы с выполнением mysqli_query

Вот проблема: я начал своп сегодня использовать mysqli. Нет, biggie, просто пришлось изменить несколько заявлений. Все прошло отлично, никаких ошибок... За исключением того, что я не могу заставить его выполнять какие-либо запросы вообще. У меня двойной и тройной проверили мой синтаксис. Я даже начал создавать ситуации, в которых она ДОЛЖНА возвращать ошибку (пытаясь получить ее в INSERT для таблиц, которые не существуют или со значениями, превышающими пределы столбцов или не соответствующие типу) и... ничего. Он не возвращает ошибку, он не пишет. Он будет жаловаться, если параметр один не является типом mysqli.

Вот соответствующий код:

$con = mysqli_connect("localhost", "root", "","test");

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

$query = "INSERT INTO files VALUES (NULL, 5, 'hello')";
mysqli_query($con, $query);

И ничего. Он работает без проблем, но он никогда не записывает запись. Я могу даже изменить запрос $на "hdjhkfhhjfkd", и он не вызывает проблем. mysqli_query() просто не выполняется, период. Единственный раз, когда я могу заставить его отреагировать, - если я изменю $con на что-нибудь еще, тогда он жалуется, что ему нужен тип mysqli.

Мысли? Это приводит меня в бешенство.

Ответы

Ответ 1

Вы проверили возвращаемое значение mysqli_query()? Он возвращает FALSE, если произошла ошибка. В этом случае mysqli_error() дает дополнительную информацию об ошибке.

<?php
$con = mysqli_connect("localhost", "root", "", "test");
if (mysqli_connect_errno()) {
  printf("Connect failed: %s\n", mysqli_connect_error());
  exit();
}

$query = "INSERT INTO files VALUES (NULL, 5, 'hello')";
echo "<pre>Debug: $query</pre>\m";
$result = mysqli_query($con, $query);
if ( false===$result ) {
  printf("error: %s\n", mysqli_error($con));
}
else {
  echo 'done.';
}

Ответ 2

public function connection()
{
        $con=mysqli_connect('localhost','root','','int');
        return $con;

}
public function login($u,$p)
{
    $fd=$this->connection();
    $sql = "SELECT * FROM user WHERE (uname = '".$u."' AND pass = '".$p."')";
    $result = mysqli_query($fd,$sql);
    $num = mysqli_num_rows($result);
    if($num)
    {
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

Ответ 3

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

$db_connect = mysqli_connect("host", "user", "password", "database");

Надеюсь, этот код вам поможет. Если у вас возникли проблемы, оставьте комментарий. Thanku.