不能用php将值插入mysql

时间:2015-12-19 22:52:15

标签: php mysql mysqli

我有这段代码,但它没有按预期插入$ _SESSION [' steamid']的值。高于if语句的所有内容似乎都有效,因为如果我在if语句中添加了其他内容(测试行),它就会执行。

$link = mysqli_connect($db_host, $db_user, $db_passwd, $db_dbase);
$query = mysqli_query($link, "SELECT * FROM users WHERE steamid='".$_SESSION['steamid']."'");
if (mysqli_num_rows($query) == 0) {
      mysqli_query($link, "INSERT INTO `users`(`steamid`) VALUES (".$_SESSION['steamid'].")");
}

2 个答案:

答案 0 :(得分:1)

你想念这个价值的引用,我想:

$link = mysqli_connect($db_host, $db_user, $db_passwd, $db_dbase); 
$query = mysqli_query($link, "SELECT * FROM users WHERE steamid='".$_SESSION['steamid']."'"); 
if (mysqli_num_rows($query) == 0) { 
    mysqli_query($link, "INSERT INTO `users`(`steamid`) VALUES ('".$_SESSION['steamid']."')"); 
}

答案 1 :(得分:0)

您的用户表最有可能包含更多必需字段,然后加油。

在您的数据库上手动运行查询,响应将告诉您某些字段缺失。

只是插入像那样的蒸汽不是很有意义。 我猜你想要做这样的事情。

$steamid = mysqli_real_escape_string($_SESSION['steamid']);
mysqli_query($link, 'INSERT INTO users (userid, steamid, <other required fields>) VALUES ("'.$userid.'", "'.$steamid.'", <other required fields>);"

总是逃避你的价值观,让sql注入开放的东西会产生很多错误。