我刚刚开始编码我自己的脚本大约一个小时前,我遇到了一个错误,我不确定如何修复,似乎一切都是正确的解析除了用户名,出于某种原因,当我执行我的PHP表创建脚本它不是解析用户名从config.php,而不是执行脚本没有用户名。
我把代码虽然phpcodechecker.com/,它没有给我任何东西,甚至没有任何警告,它让我真的很困惑,代码看起来很好,但我在这方面相当新手,所以我可能错过了一些巨大的,任何帮助将非常感激。
为什么这段代码不解析用户名通过createtable.php当它试图连接?
有问题的代码片段;堆栈格式化代码块的方式让我很困惑所以我直接使用pastebin
config。
createtable.php
这是因为您在config.php
中混合了mysqli
和mysql
api,最终根本没有连接
mysqli_connect($db_hostname, $db_username, $db_password)
mysql_select_db($db_database)
要使用mysqli建立与数据库的正确连接(这显然更好,因为mysql_*
函数已弃用),请执行以下操作:
$mysqli = new mysqli('localhost', 'fake_user', 'my_password', 'my_db');
if ($mysqli->connect_errno) {
die('Connect Error: ' . $mysqli->connect_errno);
}
你可以在这里查看文档
我想补充的是,您可以在任何其他脚本中使用config.php
连接,只需要求它。
require('config.php');
那么你的creatables.php
就是这样的
require("config.php");
$sql="CREATE TABLE quoter (
id int NOT NULL AUTO_INCREMENT,
quote text NOT NULL,
quoteby CHAR(50) NOT NULL,
PIMARY KEY (id)
)";
if (mysqli_query($mysqli,$sql))
{
echo "Table 'quoter' was created sucessfully";
}
else
{
echo "Error creating table 'quoter': ".mysqli_error($mysqli);
}
和你的config.php
$mysqli = new mysqli('localhost', 'fake_user', 'my_password', 'my_db');
if ($mysqli->connect_errno) {
die('Connect Error: ' . $mysqli->connect_errno);
}
我希望你注意到$mysqli
是处理连接的参数,所以你需要在数据库中执行操作时传递这个参数,例如
mysqli_query($mysqli,$sql);
//^here it is