第一次使用mysqli并与准备好的声明斗争。 这是数据库问题,还是表问题?
这是使用CodeIgniter框架与autoconfig ... http://www.codeigniter.com/user_guide/database/connecting.html
$con = mysqli_connect() or die('Error in Connecting: ' . mysqli_error($con));
,似乎是成功的。$stmt = mysqli_prepare($con, "INSERT INTO table(documentID) VALUES (?)");
1046 No database selected
但我的代码只是告诉数据库选择/连接没问题。 在我的模型中查看:
$con = mysqli_connect() or die('Error in Connecting: ' . mysqli_error($con));
if (!$con) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
echo "<b>";
exit;
}
else
{
echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($con) . PHP_EOL;
//Success: A proper connection to MySQL was made!
$stmt = mysqli_prepare($con, "INSERT INTO table(documentID) VALUES (?)");
if (!$stmt) {
echo "Problem <b>";
$error = $con->errno . ' ' . $con->error;
echo $error; // 1046 No database selected
exit;
}
答案 0 :(得分:1)
如果您只需要在同一连接上使用不同的数据库,则无需创建单独的数据库配置。您可以在需要时切换到其他数据库,如下所示:
Type
答案 1 :(得分:1)
重要的是要注意在建立数据库连接时需要考虑几个层。首先,您需要连接到服务器,然后连接到您选择的数据库。完成后,您就可以运行查询了。
查看mysqli_connect()的PHP手册条目 http://php.net/manual/en/function.mysqli-connect.php
构建mysqli_connect方法之后不会出现mysqli错误并不太令人惊讶,因为你从未真正要求它做任何事情。
答案 2 :(得分:0)
为了更容易阅读下一个可能遇到这个问题的人....有几个片段回答了我的问题。
Fred-ii指出“CI使用不同的方法作为准备好的声明” 回想起来,我不知道我是如何失去追踪的。所有突然之间我都在CodeIgniter框架之外挣扎着mysqli语句,并且咆哮着错误的树。
OffTheBricks指出“在构建mysqli_connect方法之后不会出现mysqli错误并不太令人惊讶,因为你从未真正要求它做任何事情。”
显然,假设我的autoconfig是正确的,并且错误检查说我的数据库连接一切都很好,只是因为我混合了两种不同的技术:CodeIgniter autoconfig文件和标准的mysqli。
感谢您的帮助......现在感觉有点像个白痴。