MySQL i准备语句不会产生错误或结果

时间:2019-05-15 01:01:26

标签: php mysql mysqli prepared-statement

这似乎是使用准备好的语句和MYSQLi将信息简单地插入数据库中,但只有在将数据插入旧庄园(不安全)的情况下,我才会得到结果:

$write = mysql_query("INSERT INTO stats VALUES('','$pagename','$network','$duration','$statvote','',INET_ATON('$ip'),NOW())");

我正在使用:

服务器版本:5.6.43-MySQL社区服务器(GPL) PHP版本5.6.40 已启用API扩展mysql,mysqli,pdo_mysql

我确保存在MYSQLi:

if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) {
    echo 'We don\'t have mysqli!!!';
} else {
    echo 'Yes we have it!';
} 

....,并在命令行中使用以下命令进行检查:

php -m | grep -i mysql

并收到:

mysql
mysqli
mysqlnd
pod_mysql

我成功连接了。

// Create connection
//                  servername   username          PW          dbname
$conn = new mysqli(localhost, ***************, ***********, ************);

// Check connection
//if (mysqli_connect_error()) { echo mysqli_connect_error(); exit;}

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully";

插入记录的主要代码是:

// Test variables
$pagename= 'Test';
$network = 'MMM';
$duration = 60;
$statvote = 1;
$username = 'star';
$ip = $_SERVER['REMOTE_ADDR']; ///gets visitor IP address


// the ??????? below are parameter markers used for variable binding..this is a Template
$write = "INSERT INTO stats (showname,network,duration,vote,username,ip,timevoted) VALUES(?,?,?,?,?,INET_ATON(?),NOW())";

//prepare 
$stmt = $conn->prepare($write);

//  Bind                  
$stmt-> bind_param("ssiisss",$pagename,$network,$duration,$statvote,$username,INET_ATON($ip),NOW());


$stmt->execute();

$stmt->close();

$conn->close();

我希望将一条记录放置到数据库的末尾,但是我没有收到任何错误消息($ stmt-> error和mysqli_error($ stmt),..几乎就像代码不在那儿一样。我已经检查了该站点,并且看到了我认为是解决方案的讨论,例如在准备好的语句中不包括“ Id”,在准备好的语句中使用INET_ATON(?),并确保变量类型正确(s,i,d, b)。但是我的结果是一样的。

我的特定代码还有其他问题吗?

谢谢

0 个答案:

没有答案