1

大约一个小时前,我刚刚开始编写自己的脚本,遇到了一个我不确定如何修复的错误,似乎除了用户名之外的所有内容都正确解析,由于某种原因,当我执行我的 PHP 表时创建脚本它不是从 config.php 解析用户名,而是在没有用户名的情况下执行脚本。

我把代码放在 phpcodechecker.com/ 上,它什么也没给我,甚至没有任何警告,这让我很困惑,代码对我来说看起来不错,但我对此很陌生,所以我可能错过了一些巨大的东西, 任何帮助将不胜感激。

为什么这段代码在尝试连接时不将用户名解析为 createtable.php?

有问题的代码片段;堆栈格式化代码块的方式让我很困惑,所以我将只使用 pastebin

配置文件

创建表.php

4

1 回答 1

1

这是因为您正在混合mysqlimysqlapiconfig.php最终完全没有连接

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
于 2013-05-31T08:20:57.747 回答