除了其他答案:(一个被删除)
您的查询mysqli_select_db('test_db');
$retval = mysqli_query( $sql, $conn );
永远不会发生.
您需要将连接传递给mysqli_select_db
(请参阅脚注),并且连接首先进入mysqli_
参考文献:
http://php.net/manual/en/mysqli.select-db.php
http://php.net/manual/en/mysqli.query.php
那么这MYSQL_ASSOC
应该是作为MYSQLI_ASSOC
mysqli_error()
也需要连接.
mysqli_error($conn)
http://php.net/manual/en/mysqli.error.php
编辑:
根据要求,以下内容不正确:
if(! $retval ) { () die('Could not get data: ' . mysqli_error()); }
这应该是作为
if(! $retval ) { die('Could not get data: ' . mysqli_error()); }
添加的内容()
不应该在那里,并且是解析错误的原因.
但是,将连接传递给错误函数:
if(! $retval ) { die('Could not get data: ' . mysqli_error($conn)); }
它是必需的,并根据手册中的说明http://php.net/manual/en/mysqli.error.php
字符串mysqli_error(mysqli $ link)
脚注:
另一点,你不需要,mysqli_select_db('test_db');
因为你已经声明了所有4个参数(包括数据库的变量):
$conn = mysqli_connect ($dbhost, $dbuser, $dbpass, $dbname);
所以只是摆脱mysqli_select_db('test_db');
.
附加编辑:
注意到你的另一个问题/sf/ask/17360801/,这在某种程度上是一个额外的答案:
您似乎以纯文本形式存储密码,这在您目前的问题中{$row['password']}
也建议密码关系.
如果打算上线,请不要.你会被黑客入侵.
使用以下之一:
crypt_blowfish的
crypt()
bcrypt()
scrypt()
在OPENWALL
PBKDF2
PHP.net上的PBKDF2
PHP 5.5的password_hash()
功能.
兼容包(如果PHP <5.5)https://github.com/ircmaxell/password_compat/
其他链接:
PBKDF2对于PHP