У меня возникла одна и та же проблема, и проблема заключалась в том, что у меня было несколько проектов в решении (Web
и Droid
), и хотя Default project
был выбран в Package Manager Console
, он использовал строку подключения из Droid
project:
PM> update-database -Verbose
Using StartUp project 'Droid'. <-- DROID
Using NuGet project 'Web'. <-- WEB
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
<!-- BAD TARGET DATABASE -->
Target database is: 'DefaultConnection' (DataSource: .\SQLEXPRESS, Provider: System.Data.SqlClient, Origin: Convention).
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
[REMOVED TEXT]
ClientConnectionId:00000000-0000-0000-0000-000000000000
Error Number:-1,State:0,Class:20
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
После установки Startup Project
на Web
и Default Project
в Package Manger Console
я получил его для работы.
Нет, вы не можете использовать mysql
и mysqli
вместе. Они представляют собой отдельные API-интерфейсы, и создаваемые ими ресурсы несовместимы друг с другом.
Однако есть mysqli_close
.
с моей стороны, я думаю, что вы можете, но вам придется делать файлы для подключения к базе данных, потому что mysqli_*
будет принимать только mysqli_connect
, и поэтому с помощью mysql_*
вы можете попробовать при обучении PDO Better
MySQLi
намного безопаснее, чем MySQL
, который в любом случае устарел. Вот почему вы должны придерживаться MySQLi
, а также вы не можете смешивать их, поскольку они оба разные.
Просто, чтобы дать общий ответ здесь обо всех трех API MYSQL со ссылкой:
Вы не можете смешивать ни одно из трех ( mysql_*
, mysqli_*
, PDO
) API MYSQL от PHP вместе, он просто не работает. Это даже в справочнике FAQ :
Невозможно смешать расширения. Например, передача mysqli в PDO_MySQL или ext / mysql не будет работать.
blockquote>
Вам нужно использовать тот же API MySQL и связанные с ним функции, от подключения к запросам .
mysql_real_escape_string()
с остальной частью их кода PDO. Есть ли что-то, что я не получил здесь в свое время, работая с этими различными API-интерфейсами? Я здесь невежественный? Это выражение для "теперь удалено" вопрос stackoverflow.com/q/34209127 доступен только для просмотра 10K +, если кто-нибудь задается вопросом. Это по отношению к $stmt3->execute(array('classID' => $_POST['class'],'studentID' => mysql_real_escape_string($substr)))
. Я что-то упустил?
– Funk Forty Niner
10 December 2015 в 20:05
mysql_real_escape_string()
будет молча попытаться установить соединение с параметрами по умолчанию , которые затем работали для OP. Поэтому он просто установил соединение, чтобы получить набор символов. Таким образом, OP имеет 2 соединения
– Rizier123
10 December 2015 в 20:49
ini_get()
. Поэтому он, вероятно, работает только для OP с настройками по умолчанию. Я бы просто оставил его и получил новый кофе (☕☕☕).
– Rizier123
10 December 2015 в 20:56
sqlsrv_query()
. Я только что закрыл вопрос здесь stackoverflow.com/q/41263771
– Funk Forty Niner
21 December 2016 в 14:40
Технически вы можете использовать столько отдельных соединений, сколько хотите, в то время как ваша проблема вызвана простой опечаткой - вы не можете использовать ресурсы только из одного расширения с функциями из другого, что вполне очевидно.
Однако вам следует избегать нескольких подключений от одного и того же сценария, независимо от одного API или другого. Поскольку это будет обременять ваш сервер базы данных и исчерпывать его ресурсы. Итак, хотя технически вы можете, вы не должны смешивать разные расширения в своем коде, за исключением короткого периода рефакторинга.