MySQL INSERT语句未执行[重复]

I cannot for the love of god figure out why this statement is not executing. When I limit it to

mysql_query("INSERT INTO my_pets() VALUES ()", $con);

it fires just fine, creating an empty row (NULL in every cell), but as soon as I give it columns and values, it refuses. See below.

Can someone point out a mistake or any other reason this (seemingly) correct code isn't firing when columns and values are specified?

Premises:

  • $h, $un, $pw, and $db are all fine, as I have copied it from documents that work as we speak.
  • There are no typos or mistakes in upper/lower case characters of column names and such.

The code:

<?php

session_start();

$h="...";      // Host name
$un="...";     // Mysql username
$pw="...";     // Mysql password
$db="...";     // Database name

$con = mysql_connect("$h", "$un", "$pw")or die("cannot connect"); 
mysql_select_db("$db")or die("cannot select DB");

$name = "Pip";
$gender = "F";
$species = "Dog";

mysql_query("INSERT INTO my_pets (name, gender, species) VALUES ('$name', '$gender', '$species')", $con);

mysql_close($con);

?>
</div>

Obtained from PHP Documentation, If you're using PHP 7.0.0, mysql_query will no longer work:

Warning This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include: mysqli_query() PDO::query()

Good / Important note from someone who cares: This function should not be used for any future code and should be replaced for existing code, so I would recommend you change to PDO.